私はFedora17にpostgresqlデータベースをインストールしました。
Pgadmin3を介して新しいサーバー接続を作成すると、ポップアップウィンドウに次のエラーが表示されます。
postgresql The server doesn't accept the current user: The server report
Ident authentication failed
The server doesn't accept the current user: The server reports
FATAL: Ident authentication failed for user "pgadmin"
If this message appears, the pg_hba.conf entry found for your
client / user / database combination is set to "ident" authentication.
Some distributions, e.g. Debian, have this by default. To perform ident
based authentication successfully, you need additional setup; see the
PostgreSQL help for this. For a beginner, it might be more appropriate
to use a different authentication method; MD5 encrypted passwords are
a good choice, which can be configured by an entry in pg_hba.conf like
this:
Host all all 192.168.0.0/24 md5
This example grants MD5 encrypted password access to all databases to
all users on the private network 192.168.0.0/24.
You can use the pg_hba.conf editor that is built into pgAdmin III to
edit the pg_hba.conf configuration file. After changing pg_hba.conf,
you need to trigger a server configuration reload using pg_ctl or by
stopping and restarting the server process.
エラーメッセージに記載されている変更を加え、pg_hba.confにHost all all 192.168.0.0/24 md5
を追加しました。しかし、それでも同じエラーが発生します。私は何が間違っているのですか?
私が犯した間違いは、ホストを設定している他の行のコメントを外すのを忘れ、そのファイルへの新しい変更が有効になるようにpostgresqlを再起動しなかったことです。使用した手順は次のとおりです。
あなたのpg_hba.conf
を見つけてください、私のものは/var/lib/pgsql/data/pg_hba.conf
にあります
pg_hba.conf
の元の誤った内容は次のとおりです。IPv4とIPv6の2つのホスト行に注意してください。
# TYPE DATABASE USER ADDRESS METHOD
# "local" is for Unix domain socket connections only
local all all peer
# IPv4 local connections:
Host all all 127.0.0.1/32 ident
# IPv6 local connections:
Host all all ::1/128 ident
# Allow replication connections from localhost, by a user with the
# replication privilege.
#local replication postgres peer
#Host replication postgres 127.0.0.1/32 ident
#Host replication postgres ::1/128 ident
そのファイルの最後にこれらの行を追加する必要がありました
Host all all 127.0.0.1/32 md5
#the 32 means only the first 32 bits cannnot change, not the first 24.
#I use 32 because only one address will be accessing this server.
ここで他のデフォルト行をコメントアウトしないと、機能しません。
#Host all all 127.0.0.1/32 ident
# IPv6 local connections:
#Host all all ::1/128 ident
次に、postgresqlを再起動します。
[root@rosewill samples ]$ systemctl restart postgresql.service
再起動後、再試行するとエラーが修正されます。次に、pgadmin3を使用してサーバーにログインできます。