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ファイル:
スクリーンショット:
UNIXユーザー「postgres」のパスワードとデータベースユーザー「postgres」のデータベースパスワードを混同しています。これらは同じではありません。
データベースユーザーpostgres
のパスワードを設定せずに、データベースユーザーpostgres
のmd5
認証を有効にしたため、ロックアウトされました。
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
のドキュメント を参照してください。
これを使用して、データベースtemplate1のパスワードを変更してみてください。
$ psql -c "ALTER USER postgres WITH PASSWORD 'yourPassword'" -d template1
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を作成し、パスワードを要求するのでパスワードは不要です...