원격 포스트그레스 연결

원격 포스트그레스 연결

글쎄요, 제가 찾을 수 있는 모든 것을 시도한 것 같습니다. 그다지 많지는 않지만, 왜 데이터베이스에 원격 연결을 할 수 없는지 짐작할 수 없습니다.

내가 가진 것은 다음과 같습니다.

#postgresql.conf
listen_addresses = '12.34.56.78,localhost' # included my local ip
port = 5432                                # the port I'm trying to connect with
tcpip_socket = true                        

#pg_hba.conf
host    all         mydbuser       12.34.56.78/32         md5

I receive: connection to database 'name' failed, could not connect to server: Connection refused.
 Is the server running on host "domain.com" and accepting
 TCP/IP connections on port 5432?

netstat -ant | grep 5432 #returns nothing 

netstat -nltp | grep 5432: 아무것도 반환하지 않음

해결책

실제로 제가 이 내용을 이해하는 데 방해가 된 것은 해당 주제에 대해 제대로 작성되지 않은 블로그 게시물이었다고 생각합니다. 반면에 멋진 튜토리얼이 있습니다.슬라이스 호스트저를 위해 문제를 해결해 주셨고, 여기에 같은 문제가 있는 사람이 있다면 꼭 읽어 보시길 권합니다. Slicehost는 튜토리얼의 품질과 유지 관리 측면에서 정말 칭찬을 받아야 하지만 사람들이 서비스를 사용할 수 있도록 돕는 것이 좋은 사업이라고 생각합니다.

답변해주신 모든 분들께 감사드립니다.

답변1

DB 서버에서 다음을 실행하고 출력을 게시할 수 있습니다.

  • ps axf | grep postgres
  • 청취 포트netstat -nltp | grep 5432

방화벽을 우회하려면 5432 대신 포트 80 또는 8080을 사용해 보십시오.

12.34.56.78/32(pg_hba.conf에서 허용되는 범위)에서 연결하고 있습니까?

12.34.56.78에 ping을 보낼 수 있나요?

netstat출력에서 ​​보면 postgres 프로세스가 포트에서 수신 대기하지 않는 것 같습니다!

데이터베이스를 다시 시작할 때 /var/log/postgresql/에 흥미로운 내용이 표시됩니까?

답변2

방화벽을 확인하셨나요? 해당 포트에 대한 액세스를 방지하는 규칙이 있을 수 있습니다.

답변3

모든 myduser 12.34.56.78/32 md5 호스트

pg_hba.conf의 이 줄은 호스트 12.34.56.78의 사용자 mydbuser만 연결할 수 있음을 의미합니다.

따라서 이것이 PG 서버인 경우 호스트 또는 서브넷에 대해 다른 줄을 추가해야 합니다(예: 12.34.45.01-254 중 하나를 연결하려면 12.34.56.00/24를 입력합니다).

관련 정보