パスワードは正しいのにphpPgAdminにログインできない場合
カテゴリ:データベース
パスワードは正しいのにphpPgAdminにログインできない場合、pg_hba.confの設定が適切ではない可能性があります。まず、以下のようにpsqlコマンドで正常にログインできる状態であることが前提です。
$ psql postgres hoge
Password for user hoge:
psql (14.8 (Ubuntu 14.8-0ubuntu0.22.04.1))
Type "help" for help.
postgres=#
ログを見ると、「FATAL: Peer authentication failed」のエラーが出力されており、その後にpg_hba.confの問題点がヒントとして出力されています。
$ tail /var/log/postgresql/postgresql-14-main.log
2023-07-13 23:18:19.416 JST [4123] hoge@template1 FATAL: Peer authentication failed for user "hoge"
2023-07-13 23:18:19.416 JST [4123] hoge@template1 DETAIL: Connection matched pg_hba.conf line 95: "local all all peer"
/etc/postgresql/14/main/pg_hba.confを見ると、確かに初期設定では "local all all" 行の METHOD が peer となっているため、以下のように、peer を password や md5 に変更してあげればログインできるようになります。
local all postgres peer
# TYPE DATABASE USER ADDRESS METHOD
# "local" is for Unix domain socket connections only
local all all password
# IPv4 local connections:
host all all 127.0.0.1/32 scram-sha-256
# IPv6 local connections:
host all all ::1/128 scram-sha-256
# Allow replication connections from localhost, by a user with the
# replication privilege.
local replication all peer
host replication all 127.0.0.1/32 scram-sha-256
host replication all ::1/128 scram-sha-256
設定の変更後は、PostgreSQL を再起動します。
$ sudo systemctl restart postgresql
公開日時:2023年07月14日 12:11:21
最終更新日時:2023年07月15日 03:00:01