web-dev-qa-db-ja.com

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"
318
I159

私の記憶が正しければ、ユーザpostgresにはデフォルトでDBパスワードがUbuntuに設定されていません。つまり、postgresOSユーザーアカウントを使用することによってのみ、そのアカウントにログインできます。

あなたができるボックスにrootのアクセス権があるとします。

Sudo -u postgres psql

それがdatabase "postgres" does not existsエラーで失敗するなら、あなたはたぶんUbuntuまたはDebianサーバ上にいないでしょう:-)この場合、単にコマンドに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スーパーユーザ用の有効なパスワードを与えることができるはずですし、それも幸せでしょう。 :-)

606
A.H.

スタッフの反応は正しいですが、さらに自動化したい場合は、次のようにします。

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

完了! User = postgresとpassword = postgresを保存しました。

User postgres ubuntuのパスワードがない場合は、次のようにします。

$ Sudo passwd postgres

124
Diego

これはイライラするものでした、上の答えのほとんどは正しいですが、彼らは データベースサービスを再起動する必要があることを述べていません pg_hba.confファイルの変更が有効になる前に/。

そのため、上記のように変更を加えたとします。

local all postgres ident

それから restart rootとして(サービスサービスpostgresql-9.2 restartのようなもの)、今度はユーザpostgresとしてdbにアクセスできるはずです。

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

postgres=# 

これが新しいpostgresユーザのための情報を追加することを願っています

34
Miguel Pereira

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ファイルをデフォルト値に再設定できます。

15
nottinhill

あなたがpostgresユーザとしてpostgresシェルにログインしようとしているなら、あなたは以下のコマンドを使うことができます。

postgresユーザーに切り替える

# su - postgres

psqlにログイン

# psql

それが役立つことを願っています

11
geekgugi

-Wパラメーターを使用せず、パスワードを空白のままにしてみてください。ユーザーがパスワードなしで作成されることがあります。

それでもうまくいかない場合は、パスワードを再設定してください。それにはいくつかの方法がありますが、これは多くのシステムで機能します。

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

初めてそれを使っていて、パスワードが何であるかについての情報を持っていない人のために彼らは以下のステップに従うことができます(あなたがubuntuにいると仮定して)

  1. /etc/postgresql/9.x/main内のファイル pg_hba.conf を開きます。

     Sudo vi pg_hba.conf 
    

    2.下の行を編集

     local   all             postgres                                peer
    

     local   all             postgres                                trust
    
  2. サーバーを再起動します

      Sudo service postgresql restart
    
  3. 最後に、図のようにパスワードなしでログインできます Finally you can login without need of a password as shown in the figure

詳細についてはここをクリック

8
Jose Kj

経験則として、 POSTGRESユーザーのパスワードを絶対に設定しないでください

PgAdminからスーパーユーザーアクセスが必要な場合は、別のスーパーユーザーを作成してください。このようにして、そのスーパーユーザーの資格情報が危険にさらされた場合、いつでも実際のデータベースHostにSSH接続して、手動でスーパーユーザーを削除できます。

Sudo -u postgres -c "DROP ROLE superuser;"
2
ardilgulez

私は同じような問題を抱えていました。 Ubuntuは私にスーパーユーザーのパスワードでコンソールにログインしたままにされました。 psql行コマンドで-h localhostに接続したときを除く。

私はまた "localhost:8080/MyJSPSiteLogIn"を見ました - 示しました:致命的:ユーザー "user"による認証エラー.

pg_hba.confは問題ありませんでした。

私は2つのバージョンのpostgresが同じサービスで動いていることに気づきました。

解決済み - inutilバージョンをアンインストールする。

0
David Uvm

私はちょうどあなたがあなたのパスワードが期限切れであるかどうかもあなたがまたチェックするべきであると付け加えたかったです。

Postgresパスワード認証が失敗する を参照。

0
Jörg

これが私がログインしようとしたいくつかの組み合わせです。

# 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
tokhi