Postgres 비밀번호 인증 실패


36

Ubuntu Server 13.10에 PostgreSQL 9.1 및 pgadmin3을 설치했습니다.

postgresql.conf를 다음과 같이 구성했습니다. listen_addresses = '*'

또한 피어 연결을 변경하여 ph_hba.conf를 구성했습니다. md5

또한 postgres의 비밀번호를 다음과 같이 재설정했습니다. sudo password postgres

그런 다음 서비스를 다시 시작했습니다. sudo /etc/init.d/postgresql restart

그 후 기본 PostgreSQL 템플릿 데이터베이스에 연결하려고했습니다.

sudo -u postgres psql template1

그러나이 오류 메시지로 로그인에 실패했습니다 :

psql: FATAL:  password authentication failed for user "postgres"

그런 다음 pgadmin에서 로그인하려고했는데 동일한 오류가 발생했습니다.

암호 만료 날짜 버그 PostgreSQL 사용자가 암호를 변경 한 후 서버에 연결할 수 없음을 읽었습니다.

그러나 나는 그것을 해결할 수 없었습니다 .psql로 로그인 할 수 없습니다. 이제이 문제를 해결하는 방법이 있습니까?

편집하다

ph_hba 파일 :

이리

스크린 샷 :

여기에 이미지 설명을 입력하십시오


6
이 게시물을 복제했다는 사실에 매우 짜증이납니다. 방금 이것에 대한 답변을 썼으며 이미 수락 된 답변이있는 stackoverflow.com에 동일한 질문을 게시했다는 것을 발견했습니다. 사이트간에 답변을 복사하여 붙여 넣지 마십시오. 모든 시간을 낭비하고 정보를 찾기가 더 어려워집니다. 이 작업을 고집하면 서로 연결하십시오.
Craig Ringer

답변:


66

UNIX 사용자 "postgres"의 비밀번호와 데이터베이스 사용자 "postgres"의 데이터베이스 비밀번호를 혼동하고 있습니다. 이것들은 동일하지 않습니다.

md5데이터베이스 사용자 postgres의 비밀번호를 설정하지 않고 데이터베이스 사용자에 대한 인증을 사용 가능하게 했으므로 스스로 잠겼습니다 postgres.

새 줄을 맨 위에 추가하십시오 pg_hba.conf.

local    postgres     postgres     peer

그런 다음 PostgreSQL을 다시 시작하고 다시로드하십시오.

sudo -u postgres psql

결과 프롬프트에서 :

ALTER USER postgres PASSWORD 'my_postgres_password';

추가 한 줄을 제거하고 pg_hba.confPg를 다시 시작하십시오. 이제 위에서 설정 한 비밀번호를 사용하여 PostgreSQL에 postgres사용자 로 연결할 수 있습니다.

자세한 내용 은 사용 설명서의 "클라이언트 인증"장과 설명서 를 참조 하십시오pg_hba.conf .


1
UBUNTU 서버 16 LTS에서 새로운 pg9.6.6 테스트 .... 그리고 나는이 "초보자의 문제"에 놀랐습니다. 해결책으로 여기 도착하십시오 ... 단계별로 ... 큰 놀라움 : 작동하지 않습니다! psql -W postgresql://postgres:postgres@localhost다시 같은 생산 : "암호 인증 사용자에 대한 실패 '포스트 그레스'FATAL"
피터 크라우스을

해결 방법 : 모든 라인의 신뢰는 ... 노력하고 있습니다
피터 크라우스

ssh를 사용하고 있습니다. md5에 하나씩 모두 로컬 (로컬, 로컬, 호스트 ...)로 되 돌린 후 "host all 127.0.0.1/32 trust"줄만 변경할 수 없습니다. 믿음". 새로운 질문 : 왜?
피터 크라우스

pg_hba.conf파일은 시스템 사용자가 소유하고 있습니다 postgres. 데이터베이스 사용자의 데이터베이스 비밀번호 만 알고 있으므로 postgres소유권을 변경하지 않고이 conf 파일을 어떻게 편집합니까?
Shailen

라인에 local postgres postgres peer실제로 필요한 것이 무엇인지 알려주십시오 pg_hba.conf. 모든없이 잘 작동
MaxCore

3

다음을 사용하여 데이터베이스 template1의 비밀번호를 수정하십시오.

$ psql -c "ALTER USER postgres WITH PASSWORD 'yourPassword'" -d template1

나에게 같은 오류가 있지만 사용자 "postgres"대신 "root"사용자와 함께
Shadin

이것이 왜 도움이 될 수 있는지 설명해 줄 수 있습니까?
xliiv

2

pg_hba.conf에

# IPv4 local connections:
# TYPE  DATABASE    USER        CIDR-ADDRESS          METHOD
host    all         all         127.0.0.1/32         trust

그것이 작동하지 않으면 시도해보십시오

host    all         all         your_ip/32         trust

그런 다음 데이터베이스를 다시 시작하면 제대로 작동합니다 .. 신뢰하면 MD5를 만들면 암호가 필요하지 않습니다. 암호를 묻습니다 ...


3
이 방법의 어디를 사용하지 않는, 당신은 항상 당신의 데이터에 대한 사용자 액세스를 제한해야합니다
대부분 구함

CTF 서버를 실행하지 않는 한.
패스 파인더
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.