psql: FATAL: Ident authentication failed for user "foo" (自分用メモ)
普段MySQLしか使わないので、急にPostgreSQLの仕事が来て、少し慌ててしまいました。
MySQLと異なりPostgreSQLのデフォルトでは、OSのユーザー名とデータベースのユーザー名が一致しないとpsqlでログインできません。
例えば、OSのユーザー名がkurodaで、ユーザーfooでデータベースbarにログインしたい場合、
$ psql -U foo bar
psql: FATAL: Ident authentication failed for user "foo"
のようにエラーになります。
この時は、まずpg_ident.conf
の末尾にこんな風な記述を追加します。
devel kuroda foo
devel suzuki foo
最初のdevel
はマップネームというもので、適当に決めてください。kurodaユーザーとsuzukiユーザーがfooとしてPostgreSQLにログインする設定です。
次に、pg_hba.conf
を修正します。
local all all ident sameuser
という記述を探して、
local all all ident devel
と書き換えます。そして、
$ sudo /etc/init.d/postgresql reload
を実行します。
pg_ident.conf
およびpg_hba.conf
は、私の環境(Ubuntu)では、/etc/postgresql/8.3/main
ディレクトリにありました。