PostgreSQL : 사용자 "postgres"의 비밀번호 인증에 실패했습니다


431

PostgreSQL 8.4, Postgres 클라이언트 및 Pgadmin 3을 설치했습니다. 콘솔 클라이언트 및 Pgadmin의 "postgres"사용자에 대한 인증이 실패했습니다. 이전에 작동했기 때문에 사용자를 "postgres"및 암호 "postgres"로 입력했습니다. 그러나 이제 인증에 실패했습니다. 나는이 문제없이 몇 번 전에 그것을했다. 어떻게해야합니까? 그리고 어떻게됩니까?

psql -U postgres -h localhost -W
Password for user postgres: 
psql: FATAL:  password authentication failed for user "postgres"
FATAL:  password authentication failed for user "postgres"

1
제 경우에는 암호가 너무 복잡 해서 연결이 실패합니다 .
JJD

3
이 페이지를 끝까지 읽으십시오. 이 작업을 수행하려면 몇 가지 작업을 수행해야했습니다. 먼저 ALTER단계 를 수행 한 다음 pg_hba.conf파일편집 한 다음 postgres다시 시작하십시오 .
elrobis


또한 Windows에서 하나, Docker에서 하나, 두 개의 Postgres 인스턴스가 실행되고 있지 않은지 확인하십시오. Docker는 포트가 이미 사용되었다고 나에게보고하지 않았습니다. 따라서 도구는 Windows 시스템 Postgres에 연결되었지만 Docker postgers에서는 모든 것이 정상이었습니다.
koppor

답변:


750

올바르게 기억한다면 사용자 postgres에게는 기본적으로 Ubuntu에 DB 암호가 설정되어 있지 않습니다 . 즉, postgres OS 사용자 계정 을 사용해야 만 해당 계정에 로그인 할 수 있습니다.

root상자에 액세스 할 수 있다고 가정합니다 .

sudo -u postgres psql

database "postgres" does not exists오류로 실패하면 우분투 또는 데비안 서버에 있지 않은 것 같습니다 :-)이 경우 단순히 template1명령에 추가 하십시오.

sudo -u postgres psql template1

이러한 명령 중 하나라도 오류와 함께 실패 psql: FATAL: password authentication failed for user "postgres"하면 파일을 확인하십시오 /etc/postgresql/8.4/main/pg_hba.conf. 주석이 아닌 첫 번째 행과 같은 행이 있어야합니다.

local   all         postgres                          ident

PostgreSQL의 최신 버전의 경우 ident실제로있을 수 있습니다 peer. 괜찮습니다.

psql쉘 내부에서 DB 사용자 postgres 에게 비밀번호를 제공 할 수 있습니다 .

ALTER USER postgres PASSWORD 'newPassword';

또는 명령 psql을 사용하여 쉘을 그대로 둘 수 있습니다 .CtrlD\q

이제 pgAdmin에 DB 수퍼 유저에게 유효한 암호를 부여 할 수있을 것입니다. :-)


감사합니다! psql이 작동합니다. 그러나 여전히 pgadmin3에 문제가 있습니다-시스템 루트 사용자의 비밀번호를 묻습니다. 당신이 말하는 것처럼 pg_hba.conf
I159

'\ q'를 사용하여 콘솔을 종료 한 다음 추가합니다. :)
hakunin

2
ident첫 단계가 작동하려면 pg_hba.conf에 postgres 사용자가 설정되어 있어야합니다 . 이미 md5 또는 다른 것으로 설정 한 경우 자동 로그인 할 수 없습니다.
Cerin

80
아주 좋은 것입니다. 다른 신규 사용자에게는 ALTER USER 줄 끝에서 SEMICOLON을 잊지 마십시오.
itsols

3
@itsols 당신은 말했다 : "아주 좋은 하나. 다른 새로운 사용자에게, ALTER USER 라인의 끝에 SEMICOLON을 잊지 마십시오"... 당신은 4 시간 시련을 끝냈습니다! 나는 지금 어리 석고 감사하다고 느낀다. :-D
frozenjim

148

직원의 응답은 정확하지만 더 자동화하려면 다음을 수행하십시오.

$ sudo -u postgres psql -c "ALTER USER postgres PASSWORD 'postgres';"

끝난! User = postgres 및 password = postgres를 저장했습니다.

사용자 postgres ubuntu의 비밀번호가없는 경우 :

$ sudo passwd postgres


비밀번호에 '!'와 같은 흥미로운 문자가 포함되어 있으면주의하십시오.
브라이언 피터슨

45

이는 실망 스럽지만 위의 답변 대부분은 맞지만 pg_hba.conf 파일의 변경 사항이 적용되기 전에 데이터베이스 서비스다시 시작 해야한다는 언급은 없습니다 .

위에서 언급 한대로 변경하면

local all postgres ident

그런 다음 루트 로 다시 시작하십시오 (서비스 서비스 postgresql-9.2 restart와 같은 것). 이제 postgres 사용자로 db에 액세스 할 수 있어야합니다

$psql
psql (9.2.4)
Type "help" for help.

postgres=# 

이것이 새로운 postgres 사용자를위한 정보를 추가하기를 바랍니다.


26
우분투 유형 : sudo service postgresql restart
앤 킬저

4
RHEL7 사용sudo systemctl restart postgresql.service
Spechal

1
Mac에서는 어떻습니까?
AustinT

1
mac의 경우 SO에서 질문을 확인하십시오 stackoverflow.com/questions/7975556/…
Rohith Nandakumar

고마워 미구엘 암호를 수동으로 조정했으며 postgres 서버를 다시 시작할 때까지 pgAdmin이 데이터 베스에 연결하지 않았습니다.
Ustin

20

pg_hba.conf 파일을 편집하십시오. sudo emacs /etc/postgresql/9.3/main/pg_hba.conf

모든 인증 방법을로 변경하십시오 trust. "postgres"사용자의 Unix 비밀번호를 변경하십시오. 서버를 다시 시작하십시오. psql -h localhost -U postgres방금 설정 한 Unix 비밀번호로 로그인하여 사용하십시오. 작동하면 pg_hba.conf 파일을 기본값으로 재설정 할 수 있습니다.


1
완전히 막히면 이것이 유일하게 보장 된 방법입니다. 모든 메소드를 신뢰로 변경하고 db를 다시 시작한 다음 root : sudo su - postgres, postgres db에 대한 다음 설정 / 수정 / 설정 해제 비밀번호 (필요한 경우 쉘에서)로 변경 한 다음 보안 md5또는 ident메소드 로 복원 하고 다시 시작하여 값이 고정되도록하십시오. 그건 그렇고, Cent / RedHat 9.4에서 파일은 다음 위치에 있습니다./var/lib/pgsql/9.4/data/pg_hba.conf
PapaK

17

처음 사용하고 비밀번호가 무엇인지에 대한 정보가없는 사람들은 다음 단계를 수행 할 수 있습니다 (우분투를 사용한다고 가정).

  1. 파일 열기 위해서는 pg_hba.conf 의를/etc/postgresql/9.x/main

     sudo vi pg_hba.conf 

    2. 아래 줄을 편집하십시오.

     local   all             postgres                                peer

     local   all             postgres                                trust
  2. 서버를 다시 시작하십시오

      sudo service postgresql restart
  3. 마지막으로 그림과 같이 비밀번호없이 로그인 할 수 있습니다마지막으로 그림과 같이 비밀번호없이 로그인 할 수 있습니다

자세한 내용은 여기를 참조하십시오


12

postgres 셸을 postgres 사용자로 로그인하려는 경우 다음 명령을 사용할 수 있습니다.

postgres 사용자로 전환

# su - postgres

psql에 로그인

# psql

희망이 도움이


3
su - postgresUbuntu 16.04에서 posgresql 9.5에 대한 암호를 묻습니다
Prashanth Chandra

3
su - postgres공식 페도라 문서에서 제안 하는 명령 이지만 암호 프롬프트도 표시됩니다. 내가 받아 들인 대답과 동일한 명령을 사용하는 이 postgres 포럼 이메일 을 따랐습니다 sudo -u postgres psql. 데이터베이스 서버를 초기화하고 시작하는 것을 잊지 마십시오.
icc97

11

-W 매개 변수를 사용하지 말고 암호를 비워 두십시오. 때때로 사용자는 비밀번호없이 생성됩니다.

그래도 작동하지 않으면 비밀번호를 재설정하십시오. 여러 가지 방법이 있지만 여러 시스템에서 작동합니다.

$ su root
$ su postgres
$ psql -h localhost
> ALTER USER postgres with password 'YourNewPassword';

7

경험상, POSTGRES 사용자의 비밀번호를 절대 설정하지 않아야 합니다.

pgAdmin에서 수퍼 유저 액세스가 필요한 경우 다른 수퍼 유저를 만드십시오. 이렇게하면 해당 수퍼 유저의 자격 증명이 손상되면 항상 실제 데이터베이스 호스트로 ssh하고 다음을 사용하여 수퍼 유저를 수동으로 삭제할 수 있습니다.

sudo -u postgres -c "DROP ROLE superuser;"

1
이 경험 법칙의 이유는 무엇입니까?
Gershom

2
따라서 모든 수퍼 유저에게 유죄 판결을받을 수 없습니다.
ardilgulez

1
postgres의 암호를 설정하면 어떻게 모든 수퍼 유저가 손상 될 수 있습니까?
Gershom

4
비밀번호를 설정해도 모든 수퍼 유저가 손상되지는 않지만 비밀번호를 설정하지 않으면 모든 수퍼 유저가 절대로 손상되지 않습니다. 그 이유는 : 비밀번호를 설정하지 않으면 postgres 사용자에 대한 모든 비밀번호 로그인 시도가 거부되는 반면 신뢰를 통해 계속 사용할 수 있습니다.
ardilgulez

7

postgres 쉘에 들어가면이 명령을 입력하십시오

postgres=# \password postgres

이 명령을 입력하면 비밀번호를 설정하라는 메시지가 표시됩니다. 비밀번호를 설정 한 다음 시도하십시오.


3

postgresql을 설치할 때 사용자 postgres에 암호가 설정되어 있지 않으면 다음 명령을 사용하여 Unix에 암호를 명시 적으로 설정해야합니다.

sudo passwd postgres

sudo 비밀번호를 묻고 새로운 postgres 사용자 비밀번호를 요구합니다. 출처


0

비밀번호가 만료되었는지 확인해야한다고 덧붙였습니다.

자세한 내용은 Postgres 비밀번호 인증 실패 를 참조하십시오.


1
링크가 더 이상 존재하지 않는 경우에 해당 링크가 제공하는 내용에 대한 세부 정보와 요약을 추가하십시오. 그렇지 않으면 이것은 저품질 / 링크 전용 답변으로 표시 될 수 있습니다.
Tanner

나는 이것을 읽었을 것이다 : meta.stackexchange.com/questions/8231/…
Tanner

0

다음은 로그인을 시도한 몇 가지 조합입니다.

# login via user foo
psql -Ufoo -h localhost

sudo -u postgres psql postgres

# user foo login to postgres db
psql -Ufoo -h localhost -d postgres

0

나는 비슷한 문제가 있었다. Ubuntu는 수퍼 유저의 암호를 사용하여 콘솔에 로그인하게했습니다. psql line 명령에서 -h localhost와 연결된 경우를 제외하고.

"localhost : 8080 / MyJSPSiteLogIn"도 보았습니다. 치명적 : 사용자 "user"의 인증 오류입니다.

pg_hba.conf가 정상이었습니다.

동일한 서비스에서 두 가지 버전의 postgres가 실행되고 있다고 언급했습니다.

해결-inutil 버전 제거


0

나는 비슷한 문제에 직면했다. 데이터베이스에 액세스하는 동안 PGAdmin에서 비밀번호 "사용자"postgres "에 대한 비밀번호 인증에 실패했습니다"를 업데이트 한 후 프롬프트가 표시됩니다.


해결책:

  1. postgres 서버 종료
  2. pgadmin을 다시 실행하십시오.
  3. pgadmin이 비밀번호를 묻습니다.
  4. 언급 된 사용자의 현재 비밀번호를 입력하십시오

문제가 해결되기를 바랍니다.

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


-1

이것이 도움이되기를 바랍니다. bellow 명령을 사용하여 postgres sql의 비밀번호를 변경할 수 있습니다.

명령

sudo -u postgres psql

그리고 다음으로 비밀번호를 업데이트 할 수 있습니다

명령

사용자 postgres 비밀번호 'YOUR_NEW_PASSWORD'변경;


1
귀하의 답변에는 이미 추가 된 정보가 포함되어 있습니다. stackoverflow.com/a/7696398/8283469
L. Guthardt
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.