%3A%20PostgreSQL%20%E3%82%B5%E3%83%BC%E3%83%90%E3%83%BC%E3%81%AB%E6%8E%A5%E7%B6%9A%E3%81%A7%E3%81%8D%E3%81%BE%E3%81%9B%E3%82%93.png)
この問題の修正方法を詳しく説明した記事を複数読みました。pg_hba.conf ファイルの編集方法をいろいろ試してみましたが、うまくいかず、使用しようとしている PHP プログラムを実行しようとすると、Apache ログに次のエラーが引き続き表示されます。
2013年3月28日木曜日08:20:21] [エラー] [クライアント172.16.1.64] PHP警告: pg_connect(): >PostgreSQLサーバーに接続できません: 致命的: ユーザーのピア認証に失敗しました
これは私の現在の pg_hba.conf ファイルです:
他に何を試せばいいのか分かりません。どんな助けでも大歓迎です!
ありがとう!
答え1
の最初のルールを考えてみましょうpg_hba.conf
:
ローカル すべて すべて ピア
これは、すべてのローカル接続において、Unix ユーザーは db ユーザーと同じである必要があることを意味します。明らかに、これは PHP コードには当てはまらないため、失敗します。ユーザーのピア認証に失敗しました...。
2 番目のルールではスクリプトの接続が許可されますが、最初のルールが優先されるため無視されます。
ローカル すべて すべて 信頼
このルールは、パスワードを要求せず、ID を確認せずにすべてのローカル接続が許可されることを意味します。
問題がなければ、最初のルールを削除し、postgresql サービスを再ロードして変更を有効にします。
他のルールは TCP 接続に関連しているため、問題とは関係ありません。エラー メッセージによると、スクリプトで使用されているメソッドではなく、デフォルトの Unix ドメイン ソケットを介して接続しようとしています。