pg_hba.conf / postgresql.conf 설정에도 불구하고 사용자로부터 원격 연결을 거부하는 PostgreSQL 9.3


0

우분투 14.04 LTS에서 PostgreSQL 9.3을 실행하고 있습니다. apt.에서 제공되는 재고 Postgres 배포판입니다. 다양한 포럼에서 데이터베이스에 대한 원격 psql 연결을 허용하는 올바른 방법은 /etc/postgresql/9.3/main/pg_hba.conf에 다음 줄을 추가하는 것임을 나타내는 많은 스레드가 발견되었습니다.

host    all             all       0.0.0.0/0             md5

그리고 이것을 /etc/postgresql/9.3/main/postgresql.conf에서 설정하십시오 :

listen_addresses = '*'

그런 다음 dbms를 다시 시작합니다 ( "sudo service postgresql restart")

나는 이것을했고 다른 서버 에서이 DB에 연결하려고 할 때 여전히 다음과 같은 오류가 발생합니다.

psql -h <the db host> -p 5433 -d the_db the_user
$> Password for user the_user:  
$> (I enter the pw)
$> psql: FATAL:  password authentication failed for user "the_user"
$> FATAL:  password authentication failed for user "the_user"

DB의 호스트 머신에서 다음을 실행하면 비밀번호가 확실하게 입력됩니다.

$>  psql -h localhost -d the_db the_user
$> Password for user the_user: 
$> (I enter the exact same pw as above)
$> psql (9.3.5, server 9.1.13)
$> Type "help" for help.
$> 
<the psql shell session begins>

구성이 정확하고 암호가 정확하고 호스트 컴퓨터가 원격 연결 (프롬프트)을 수락하고 그 시점에서 실패하는 것처럼 여기에서 잘못 가고있는 곳을 잃어 버렸습니다. 입증. 이 작업을 수행하는 방법에 대한 아이디어가 있으면 알려주십시오. 감사.


giomasce의 요점 외에도을 변경 한 후 PostgreSQL을 다시로드했는지 확인하십시오 pg_hba.conf.
Craig Ringer

답변:


2

첫 번째 세션에서는 포트 5433을 사용하고 두 번째 세션에서는 기본값 5432를 사용합니다. 둘 이상의 클러스터가 설치되어있을 수 있습니다 (아마도 다른 버전의 PostgreSQL 패키지와 함께 제공됨). 사용하지 않는 클러스터를 삭제 pg_dropcluster하고 올바른 클러스터 에 연결되어 있는지 확인하는 것이 좋습니다 .

(내가 가치있는 정보를 가진 데이터베이스가 있다면 물건을 떨어 뜨리기 전에 다시 확인해야 함)


이것에 대한 후속 조치 : 실제로 당신은 정확하고 잘못된 postgres 인스턴스에 연결하고있었습니다. "sudo pg_lsclusters"를 실행하면 5433과 5432에서 2 가지 버전의 postgres (9.1 및 9.3)를 나란히 실행하고있는 것으로 나타났습니다. 모든 데이터를 9.3 (pg_dumpall 포함)으로 마이그레이션하고 9.1을 제거했습니다. 이제 해당 설치에 대한 pg_hba.conf의 규칙에 따라 9.3 설치에 연결할 수 있습니다.
Nick Z
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.