pgadmin을 사용하여 PostgreSQL을 원격 데이터베이스에 연결할 수 없습니다

StackOverflow https://stackoverflow.com/questions/1287067

  •  18-09-2019
  •  | 
  •  

문제

IP 192.168.1.10으로 로컬 서버 (Ubuntu)에 PostgreSQL을 설치했습니다. 이제 PGADMIN과 함께 IP 192.168.1.11을 사용하여 클라이언트 시스템 (Ubuntu)의 데이터베이스에 액세스하려고합니다.

클라이언트가 연결할 수 있도록 postgresql.conf 및 pg_hba.conf를 변경해야한다는 것을 알고 있습니다. 저를 안내해 주 시겠어요?

도움이 되었습니까?

해결책

실제로 PGADMIN3을 통해 원격으로 PostgreSQL 서버에 연결하는 것은 3 단계 프로세스입니다.

참고 : Ubuntu 11.04와 PostgreSQL 8.4를 사용합니다.

  1. 기본 설정은 루프백 인터페이스의 연결에 대해서만 청취 할 수 있으므로 PostgreSQL을 사용하여 원격 TCP 연결을 듣게해야합니다. 원격으로 서버에 도달하려면 다음 줄을 파일에 추가해야합니다. /etc/postgresql/8.4/main/postgresql.conf:

    Listen_Addresses = '*'

  2. PostgreSQL 기본적으로 원격 주소에서받는 모든 연결을 거부 하므로이 줄을 추가 하여이 규칙을 완화해야합니다. /etc/postgresql/8.4/main/pg_hba.conf:

    모든 0.0.0.0/0 MD5를 모두 호스트하십시오

    유효한 암호 (MD5 키워드)를 제공 할 수있는 경우 모든 사람이 주소에서 로그인 할 수있는 액세스 제어 규칙입니다. 0.0.0.0/0 대신 필요한 네트워크/마스크를 사용할 수 있습니다.

  3. 이 수정을 구성 파일에 적용하면 PostgreSQL 서버를 다시 시작해야합니다. 이제 사용자 이름과 비밀번호를 사용하여 원격으로 서버에 로그인 할 수 있습니다.

다른 팁

PostgreSQL 8 이상을 사용하는 경우 수정해야 할 수도 있습니다. listen_addresses 설정 /etc/postgresql/8.4/main/postgresql.conf.

라인 추가 시도 :

listen_addresses = *

PostgreSQL에 모든 네트워크 인터페이스에서 연결을 듣도록 지시합니다.

명시 적으로 설정하지 않으면이 설정 기본값이 표시됩니다 localhost 이는 동일한 기계에서만 연결을 허용한다는 것을 의미합니다.

Prostgresql.conf 파일을 변경할 필요는 없었지만 명령 줄을 통해 PSQL을 기반으로 다음을 수행해야했으며 PGADMIN은 RDS와 AWS와 연결되지 않았습니다.

RD가 공개적으로 액세스 할 수 있도록 설정했습니다. ACL과 보안 그룹이 넓고 여전히 문제가 있는지 확인했습니다.sudo find . -name *.conf그 다음에 sudo nano ./data/pg_hba.conf그런 다음 pg_hba.conf 파일의 지시문 맨 위에 추가됩니다 host all all 0.0.0.0/0 md5그리고 pgadmin이 자동으로 로그인했습니다.

이것은 PG_HBA.conf 파일에서도 작동했습니다host all all md5 IP 주소가 없으면 내 IP 주소로도 작동했습니다. host all all <myip>/32 md5

참고로, 내 RDS는 기본 VPC에있었습니다. 비 디펜트 VPC에 동일한 보안 그룹, ACL 및 보안 그룹 설정이 기본 VPC와 동일한 RDS 인스턴스를 가졌으며 작동 할 수 없었습니다. 왜 그런지 잘 모르겠지만, 그것은 또 다른 날입니다.

Linux 터미널에서는 이것을 시도하십시오.

  • sudo service postgresql start : 서버를 시작합니다
  • sudo service postgresql stop : 당신의 서버를 중지합니다
  • sudo service postgresql status : 서버 상태를 확인합니다

Redhat Linux의 경우

sudo vi /var/lib/pgsql9/data/postgresql.conf 

PGSQL9는 설치된 Postgres 버전의 폴더이며 다른 사람마다 다를 수 있습니다.

change charning_addresses = '*'에서 listen_addresses = 'localhost'에서

sudo /etc/init.d/postgresql stop
sudo /etc/init.d/postgresql start

방화벽을 확인하십시오. 비활성화하면 연결할 수 있습니다. 방화벽을 원하거나 비활성화 할 수없는 경우 원격 연결에 대한 규칙을 추가하십시오.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top