PostgreSQLのエラー「psql: FATAL: Ident authentication failed for user "postgres"」の解消方法〜コンソールでpsql -U postgresが失敗する場合〜
Linuxのコンソール画面等でpsql -U postgresとすると、
psql: FATAL: Ident authentication failed for user "postgres"
というエラーが出てしまうことがある。
このエラーは、pg_hba.confを修正すれば回避できる。
-----------------------------------------------------------------------------------------------------
# TYPE DATABASE USER CIDR-ADDRESS METHOD
# "local" is for Unix domain socket connections only
local all all ident sameuser
-----------------------------------------------------------------------------------------------------
PostgreSQL 8.xのインストール直後だと上記のようになっているので、「ident sameuser」を「trust」に変更する。(「trust」は無条件でデータベース接続を許可するため、セキュリティを考慮する場合は、「trust」を「password」などにする。)
-----------------------------------------------------------------------------------------------------
# TYPE DATABASE USER CIDR-ADDRESS METHOD
# "local" is for Unix domain socket connections only
local all all trust
-----------------------------------------------------------------------------------------------------
PostgreSQLサービスを再起動したら、psql -U postgresが利用できるはず。
※pg_hba.confは、Linuxだと/var/lib/pgsql/data/配下、Windowsだと、C:\Program Files\PostgreSQL\8.x\data配下にある。(「8.x」はPostgreSQLのバージョンで実際には「8.3」などとなる。)