development

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

big-blog 2020. 2. 29. 15:25
반응형

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


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"

올바르게 기억한다면 사용자 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 수퍼 유저에게 유효한 암호를 부여 할 수있을 것입니다. :-)


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

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

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

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

$ sudo passwd postgres


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

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

local all postgres ident

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

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

postgres=# 

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


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 파일을 기본값으로 재설정 할 수 있습니다.


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

postgres 사용자로 전환

# su - postgres

psql에 로그인

# psql

희망이 도움이


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

  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. 마지막으로 그림과 같이 비밀번호없이 로그인 할 수 있습니다마지막으로 그림과 같이 비밀번호없이 로그인 할 수 있습니다

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


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

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

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

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

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

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

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

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


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

# 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

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

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

pg_hba.conf가 정상입니다.

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

해결-inutil 버전 제거


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

postgres=# \password postgres

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


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

명령

sudo -u postgres psql

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

명령

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

참고 URL : https://stackoverflow.com/questions/7695962/postgresql-password-authentication-failed-for-user-postgres



반응형