7

次の設定でpgadmin3に新しいサーバーを登録しようとしています:

Name: postgres
Host: localhost
Username: postgres
Password: <password which works for psql>
Service: empty or postgres

しかし、それはエラーを示しています:

FATAL: Ident authentification failed for user "postgres"

postgresql サービスを再起動しましたが、役に立ちませんでした。

/var/lib/pgsql/data/pg_hba.conf の内容:

# TYPE  DATABASE    USER        CIDR-ADDRESS          METHOD

# "local" is for Unix domain socket connections only
local   all         all                               trust
# IPv4 local connections:
host    all         all         127.0.0.1/32          trust
# IPv6 local connections:
host    all         all         ::1/128               ident

編集: ツール -> サーバー構成 -> pg_hba.conf はグレー表示されています。

4

3 に答える 3

5

PgAdmin-III はおそらくデフォルトで IPv6 経由で接続しているように見えるためident、localhost の IPv6 アドレスに一致する行を使用しています::1/128

パスワード認証を使用したい場合は、おそらく次のことが必要です。

# IPv4 local connections:
host    all         all         127.0.0.1/32          md5
# IPv6 local connections:
host    all         all         ::1/128               md5

Unix ドメイン ソケットの行が に設定されている理由はわかりませんがtrust、開発用のマシンであればおそらく問題ないので、そのままにしておいてください。identただし、(UNIXユーザーをPgユーザーと同じにする必要がある場合)またはmd5(ローカルUNIXソケットでのパスワード認証の場合)として持つ方がはるかに安全です。

pg_hba.confPgAdmin-III に編集権限がない場合は、テキスト エディターで直接編集する必要があります。postgresを介してPgAdmin-III をユーザーとして実行することもできますが、 を使用するか、同様のコマンドライン テキスト エディタを使用して を変更するsudo方が安全です (おそらく簡単です) 。nanopg_hba.conf

パスワードはpsqlpsql別段の指示がない限り、UNIX ドメイン ソケットを介して接続し、それを に設定しているため、有効ですtrust。実際にパスワードを提供するように求められることはなく、自動的に信頼されているだけなので、任意のパスワードを提供しても機能することがおそらくわかるでしょう。psql

于 2012-09-19T05:53:20.497 に答える
4

はい、このタイプのエラーは、pgadmin のすべての初心者ユーザーに見られます。私はこの解決策を見つけましたが、それは私にとってはうまくいきました。

sudo -u postgres psql

これにより、システムパスワードが要求され、postgres プロンプトが表示されます。

次に、psql で以下のコマンドを入力してパスワードを変更します。

\password

ここで、新しいパスワードを入力して再入力します。

于 2014-10-01T11:39:21.953 に答える