2016-07-19 4 views
11

우분투 서버 14.04를 실행하는 서버에 PostgreSQL 9.3을 설치했습니다.포트 5432에서 Postgresql에 연결할 수 없습니다.

터미널을 통해 서버에 ssh를 연결하면 psql과 연결할 수 있습니다. 나는 원격 연결을 할 pgAdmin III를 구성 할 때, 나는 얻을 :

9.3/main (port 5432): online 

그래서 당연히 내가 부족 뭔가를 :

Server doesn't listen The server doesn't accept connections: the connection library reports could not connect to server: Connection refused Is the server running on host "172.24.3.147" and accepting TCP/IP connections on port 5432?

내가 서버에서 실행 service postgresql status 그것이 나에게 준다 여기서 중요합니다.

편집

서버에 netstat -na를 실행할 때, 내가 할 (관련 부분 같아요) :

Active Internet connections (servers and established) 
Proto Recv-Q Send-Q Local Address   Foreign Address   State  
tcp  0  0 0.0.0.0:22    0.0.0.0:*    LISTEN  
tcp  0  0 127.0.0.1:5432   0.0.0.0:*    LISTEN  
tcp  0  0 172.24.3.147:22   172.24.3.240:61950  ESTABLISHED 
tcp  0  0 172.24.3.147:22   172.24.3.240:60214  ESTABLISHED 
+0

당신은 그 IP에 바인딩하지 않았습니다. pg가 다른 것을 듣고 있습니다. 아마 127.0.0.1:5432 –

+0

'바인딩'이란 무엇입니까? pgAdmin을 통해 연결을 시도 할 때 ssh에서 사용되는 서버 포트를 사용하고 있습니다. – Rodrigo

+0

당신은 pg에게 어떤 인터페이스/ip가 연결을 청취 하는지를 말해야합니다. 127.0.0.1:5432에 바인딩 된 경우 172.24.3.147:5432에 대한 모든 시도는 작동하지 않습니다. ip : port 콤보를 듣고있는 것이 없으므로 –

답변

17

'listen_addresses'로 postgresql.conf 파일을 편집하고 라인을 변경해야합니다.

이 파일은 /etc/postgresql/9.3/main 디렉토리에 있습니다.

기본 Ubuntu 설정은 모든 PostgreSQL 클라이언트가 PostgreSQL 서버와 동일한 컴퓨터에서 작동 할 때 사용하기에 충분한 localhost (또는 127.0.0.1) 인터페이스 만 허용했습니다.

listen_addresses = '*' 

는 그런 다음 편집있는 pg_hba.conf 파일이 너무 : 다른 컴퓨터에서 PostgreSQL 서버를 연결하려는 경우, 당신은이 방법으로이 설정 라인을 변경할 수 있습니다. 이 파일에서이 서버에 연결할 수있는 컴퓨터와 사용할 수있는 인증 방법을 설정했습니다. ...이 파일에 의견을 읽고,

편집

host all   all   192.168.1.0/24  md5 

하십시오 : 편집을 postgresql.conf 후

을하고 PostgreSQL의 서버를 다시 시작해야 위해서는 pg_hba.conf 보통 비슷한 라인이 필요합니다 .

+0

매력처럼 작동했습니다! 고맙습니다. – Rodrigo

+0

환영합니다 :-) –

+0

고맙습니다. 매우 도움이됩니다. :) – simon

0
당신은 아마 당신의 LAN에 액세스 할 포트를 열어 하나 필요

(또는) 또는 네트워크 주소를 포트에 바인드하십시오. (로컬 호스트가 아닌 LAN에서 PostgreSQL을 청취하십시오)

+0

죄송합니다. 평생 PC 개발자로서이 포트 문제에 대해 완전히 알고있는 것은 아닙니다. 지금 당장 LAN (프록시 기반 기관 네트워크) 내에서 액세스해야합니다. 귀하의 남은 메시지는 나에게 이해가되지 않습니다. 다른 의견을 참조하십시오. – Rodrigo

+1

Jan Marek의 답은 당신이 찾고있는 것이어야합니다. 'tcp 0 0 127.0.0.1:5432 0.0.0.0:* LISTEN'이 행은 Postgre가 로컬 네트워크가 아닌 postgre가 실행중인 컴퓨터에서 오는 연결만을 수신한다는 것을 보여줍니다. – Av4t4r

+0

좋습니다. 하지만 여러분은 선택된 라인이 Postgres에 대해 어떻게 알고 있습니까? 5432가 기본 포트 번호이기 때문에? – Rodrigo

0

명령 줄 연결을 통한 psql과 pgAdmin이 AWS와 RDS에서 연결되지 않는 문제가있었습니다. 내 RDS를 공개적으로 이용할 수 있도록 설정했습니다. 내 ACL 확인했다 및 보안 그룹이 그렇게 문제가 여전히 열려 넓은 있었다, 나는 다음과 같은 않았다. sudo find . -name *.conf 다음 sudo nano ./data/pg_hba.conf 다음있는 pg_hba.conf 파일에 지시의 상단에 추가 host all all 0.0.0.0/0 md5 및 pgAdmin가 자동으로 저를 로그인

이것은 또한 어떤 IP 주소 않고있는 pg_hba.conf 파일 host all all md5에서 일이 또한 내 IP 주소 보조 노트로 host all all <myip>/32 md5

와 협력, 내 RDS는 내 기본 VPC했다. 기본 VPC와 동일한 보안 그룹, ACL 및 보안 그룹 설정을 사용하는 기본이 아닌 VPC에서 동일한 RDS 인스턴스를 사용 했으므로 작동하지 못했습니다. 왜 그런지는 모르지만, 그것은 또 다른 날입니다.

0

방화벽 설정도 확인하십시오. 확인하고 내 pg_hba.confpostgres.conf 파일을 다시 확인한 후 내 방화벽이 모든 것을 재정 의하여 연결을 차단한다는 것을 알게되었습니다.

관련 문제