Postgre 서버 설치 후 접속이 안될 때 확인 할 것
텔넷으로 5432 포트까지 연결이 확인되었다면, 방화벽에서 포트가 열려 있지만 PostgreSQL의 원격 접속 설정이 제대로 되지 않았을 가능성이 높습니다.
아래 단계를 따라가며 확인해 보세요.
🔍 1. PostgreSQL 설정 파일 수정 (postgresql.conf)
PostgreSQL이 원격 접속을 허용하도록 설정해야 합니다.
Windows 서버에서 아래 경로로 이동하여 postgresql.conf 파일을 엽니다.
📍 PostgreSQL 설정 파일 위치 (Windows)
C:\Program Files\PostgreSQL\<버전>\data\postgresql.conf
<버전> 부분은 설치한 PostgreSQL 버전에 따라 다릅니다.
📌 1-1. listen_addresses 설정 변경
파일을 열고 listen_addresses 설정을 아래와 같이 수정합니다.
listen_addresses = '*'
기본값은 localhost이므로, 원격에서 접속하려면 * 또는 특정 IP(10.248.112.161)를 입력해야 합니다.
변경 후, PostgreSQL 서비스를 재시작해야 적용됩니다.
🔍 2. 원격 접속 허용 (pg_hba.conf)
PostgreSQL의 접근 정책을 설정하는 pg_hba.conf 파일을 수정해야 합니다.
📍 pg_hba.conf 파일 위치 (Windows)
C:\Program Files\PostgreSQL\<버전>\data\pg_hba.conf
📌 2-1. IPv4 원격 접속 허용 추가
파일을 열고 다음 줄을 추가하세요.
host all all 0.0.0.0/0 md5
설명:
- 0.0.0.0/0 → 모든 IP에서 접속 허용
- md5 → 비밀번호 인증 사용
보안을 위해 특정 IP만 허용하려면 다음과 같이 수정할 수 있습니다.
host all all 10.248.112.0/24 md5
이는 10.248.112.x 대역에서만 접속을 허용하는 설정입니다.
🔍 3. PostgreSQL 서비스 재시작
위의 설정을 적용하려면 PostgreSQL 서비스를 재시작해야 합니다.
Windows에서 서비스 재시작하는 방법:
- Win + R을 눌러 services.msc 입력 후 실행
- PostgreSQL 서비스 (postgresql-<버전>-<서비스이름>)를 찾기
- 오른쪽 클릭 → 재시작(Restart)
또는, 명령 프롬프트에서 아래 명령어를 실행합니다.
net stop postgresql-x64-<버전> net start postgresql-x64-<버전>
<버전> 부분을 설치된 PostgreSQL 버전에 맞게 수정하세요.
🔍 4. 원격 접속 테스트
이제 다시 원격에서 PostgreSQL에 접속이 되는지 확인합니다.
📌 4-1. psql 명령어로 직접 접속 테스트
원격 클라이언트에서 다음 명령어를 실행하세요.
psql -h 아이피주소 -U <유저명> -d <DB명>
비밀번호 입력 후 연결이 성공하면 설정이 완료된 것입니다! 🎉
실패하면 출력된 오류 메시지를 확인하고 다음 단계를 진행합니다.
🔍 5. Windows 방화벽 설정 확인
5432 포트가 Windows 방화벽에서 열려 있는지 확인해야 합니다.
📌 5-1. Windows 방화벽에서 포트 열기
- Windows 검색창에서 "Windows Defender 방화벽" 검색 후 실행
- 고급 설정 클릭
- 왼쪽에서 인바운드 규칙 선택
- 오른쪽에서 새 규칙 클릭
- 포트(Port) 선택 후 다음
- TCP 선택 & 특정 로컬 포트에 5432 입력 후 다음
- 연결 허용(Allow the connection) 선택 후 다음
- 도메인, 개인, 공용 체크 후 다음
- 이름을 PostgreSQL 5432 등으로 입력 후 마침
📌 5-2. PostgreSQL 프로세스를 방화벽 예외로 추가
- Windows 검색창에서 "Windows Defender 방화벽" 실행
- 고급 설정 → 인바운드 규칙
- 새 규칙 → 프로그램(Program) → 다음
- C:\Program Files\PostgreSQL\<버전>\bin\postgres.exe 선택
- 연결 허용 → 다음
- 도메인, 개인, 공용 체크 후 마침
방화벽 규칙을 적용한 후 다시 psql로 접속을 테스트해 보세요.
✅ 최종 점검 체크리스트
✔ PostgreSQL 설정 (postgresql.conf)
✔ 접속 허용 설정 (pg_hba.conf)
✔ PostgreSQL 서비스 재시작
✔ 원격 접속 테스트 (psql -h 1아이피주소 -U 유저 -d db명)
✔ Windows 방화벽에서 5432 포트 열기
이 방법들을 적용한 후에도 원격 접속이 되지 않는다면 PostgreSQL 로그 (data/pg_log/*.log) 파일을 확인하고 오류 메시지를 공유해 주세요! 🚀