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.