GNU/Linux >> Linux の 問題 >  >> Linux

Postgres エラー メッセージ:FATAL:Ident authentication failed for user ...

解決策 1:

これは、Postgres が Ident プロトコルを使用してユーザーを認証しようとしているが、できないことを意味します。 ID 認証は次のように機能します:

  • データベース 'db' に対するデータベース ロール 'foo' を持っています
  • あなたの pg_hba.conf ファイル (/etc/postgres-something/main 内) ) は、データベース db に接続するためのプロトコルとして「Ident」を定義します 特定のホストから接続しているユーザー向け
  • 接続を確立する UNIX ユーザー名は「foo」です
  • ユーザーが接続しているマシンで実行されている Ident サーバーは、ユーザー名が本当に「foo」であることを確認します

考えられる原因と解決策:

<オール>
  • Ident サーバーはありません 接続しようとしているマシンで実行されています。ポート 113 で接続してみて、これをテストします。失敗した場合は、Ident サーバーをインストールします (例:sudo apt-get install oidentd ).
  • Ident サーバーはありますが、データベースの役割はありません 接続しようとしている名前と一致します (上記の例では「foo」)。スーパーユーザー権限で何らかの方法でデータベースに接続して作成し、 CREATE ROLE foo を実行します .または、 /etc/postgresql/.../main/pg_ident.conf にエントリを追加します (または /var/lib/pgsql/12/data またはどこでも)

  • シェルのユーザー名が一致しない可能性があります データベースの役割。接続中に Ident サーバーに接続し、正しいポート番号を渡すことで、これをテストできる場合があります。

  • 本当はパスワードで接続したいかもしれません 、Ident ではありません。 pg_hba.conf を編集します 適切にファイルします。たとえば、次のように変更します:

    host all all 127.0.0.1/32 ident
    

    host all all 127.0.0.1/32 md5
    
  • 解決策 2:

    原因は不明ですが、これで解決しました:

    pg_hba.conf

    これに変更:

    <ブロック引用>

    ホスト すべて すべて 127.0.0.1/32 md5

    正確なエラー:Caused by: org.postgresql.util.PSQLException: FATAL: Ident authentication failed for user "postgres"

    解決策 3:

    CentOS では、次の行を /var/lib/pgsql/9.3/data/pg_hba.conf に追加します。 :

    host all all 127.0.0.1/32 trust
    

    他のエントリをコメントアウトします。

    もちろん、この設定は違います 安全ですが、私のような開発用 VM をいじるだけなら、おそらく問題ありません...


    Linux
    1. エラー:PyYAML-3.11.zipのダウンロードの問題でmd5の検証に失敗しましたか? [解決]

    2. OpenStack VM起動エラー–最後の例外:ポートのバインドに失敗しました[解決済み]

    3. PostgreSQLデータベースサーバーの起動に失敗しました–UNIXプロセス用の未登録の認証エージェント[解決済み]

    1. リポジトリ「AppStream」のメタデータのダウンロードに失敗しました[CentOS]

    2. 致命的なエラー:/home/user/public_html/includes/connection.phpにある未定義の関数mysqli_connect()を呼び出します

    3. 初めてpostgresqlを設定するには?

    1. httpd:apr_sockaddr_info_get()がrhel7で失敗しました

    2. ログスロットXMLのOpenCAエラーaddMessageが失敗しました。ディレクトリを作成できません[解決済み]

    3. エラー 1045 (28000):ユーザー 'root'@'localhost' のアクセスが拒否されました (パスワードを使用:YES)