Edited at

peer認証の関係でpsqlログインできない時の対処法

More than 3 years have passed since last update.

出つくしていくるんだろうけど、メモ

環境: ubuntu14ぐらい postgres9.3

現象:postgresでない自分のUNIXユーザーでログインしたシェルから、psqlを実行する際、postgresql上のユーザーの正しいパスワードを入力してもログインできない

こんな感じ


psqlログイン

hoge@ubuntu:~$ psql -U postgres -h localhost -W

Password for user postgres:
psql: FATAL: password authentication failed for user "postgres"

hogeがUNIXグループpostgresには参加済みでもこうなる。

問題はLinuxの仕組みではなくpostgresの認証の仕組みが関係していた。

postgresユーザー名とパスワードを指定してもローカルからのアクセスはUNIXユーザー名とパスワードがpostgresのものと同じでないとログインできないPeer認証というのがあった。

pg_hba.confに設定は

(ubuntuなら/etc/postgres/postgresのバージョン/main/pg_hba.confにあった)

いくつかのハマりパターンがあるんだろうけど、自分の場合

http://stackoverflow.com/questions/7695962/postgresql-password-authentication-failed-for-user-postgres

を参考にして以下の手順を行ったら自分のUNIXユーザーからpsqlログインに成功した

リンク先にまったく同じことは書いているけど、、、


  • postgresユーザー"postgres"のパスワードをもう一度設定。
    このときmd5で保存した。

sudo su postgres -c 'psql --username=postgres'

psqlに入った後、

ALTER USER postgres with encrypted password 'your_password';


  • pg_hba.confを修正。

local all postgres md5


  • postgresを再起動

これで個人のUNIXユーザーからposgresユーザー'postgres'としてpsqlログインできる

hoge@ubuntu:~$ psql -U postgres -h localhost -W