web-dev-qa-db-ja.com

Postgresパスワード認証が失敗する

Ubuntu Server 13.10にPostgreSQL 9.1とpgadmin3をインストールしました。

Postgresql.confをlisten_addresses = '*'で設定しました

また、ピア接続をmd5に変更してph_hba.confを構成しました

さらに、Sudo password postgresで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ファイル:

ここ

スクリーンショット:

enter image description here

35
Shadin

UNIXユーザー「postgres」のパスワードとデータベースユーザー「postgres」のデータベースパスワードを混同しています。これらは同じではありません。

データベースユーザーpostgresのパスワードを設定せずに、データベースユーザーpostgresmd5認証を有効にしたため、ロックアウトされました。

pg_hba.confの先頭に新しい行を追加します。

local    postgres     postgres     peer

その後、PostgreSQLを再起動/リロードし、次の操作を行います。

Sudo -u postgres psql

結果のプロンプトから:

ALTER USER postgres PASSWORD 'my_postgres_password';

その後、pg_hba.confに追加した行を削除して、Pgを再起動します。これで、上記で設定したパスワードを使用してpostgresユーザーとしてPostgreSQLに接続できます。

詳細については、 ユーザーマニュアルの「クライアント認証」の章 および pg_hba.confのドキュメント を参照してください。

60
Craig Ringer

これを使用して、データベースtemplate1のパスワードを変更してみてください。

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

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を作成し、パスワードを要求するのでパスワードは不要です...

1
smn_onrocks