
글쎄요, 제가 찾을 수 있는 모든 것을 시도한 것 같습니다. 그다지 많지는 않지만, 왜 데이터베이스에 원격 연결을 할 수 없는지 짐작할 수 없습니다.
내가 가진 것은 다음과 같습니다.
#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를 입력합니다).