• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:pgpassが有効にならない?)

pgpassが有効にならない?

このQ&Aのポイント
  • WEBサーバー「A」とDBサーバー「B」が存在し、接続をCGIからpsqlをコールしています。しかし、pgpassが有効にならず接続できません。
  • 本番サーバーとテストサーバーの環境は同じですが、テスト環境ではpgpassが効いていない可能性があります。
  • 質問者はpgpassの所有者がユーザー「X」であることやパーミッションが「600」であることを確認しました。

質問者が選んだベストアンサー

  • ベストアンサー
  • hira6bg
  • ベストアンサー率61% (8/13)
回答No.1

推測ですみませんが。。いろいろやってみましょう。 試しに 1)CGIをキックしたユーザのホームディレクトリに.pgpassをおいてみてはどうですか?? 2)psqlで接続する-Uで指定したユーザのホームディレクトリに.pgpassをおいてみてはどうですか??

asahina02
質問者

補足

> 1)CGIをキックしたユーザのホームディレクトリに.pgpassをおいてみてはどうですか??  CGIをキックするユーザーとなるとアパッチで設定されているnobodyというユーザーになるようなのですが、  このユーザーのホームは「/」となっているようです。  一応そこにおいて試してみました。(所有者root パーミッション600)  ・・・結果は失敗でした。 > 2)psqlで接続する-Uで指定したユーザのホームディレクトリに.pgpassをおいてみてはどうですか??  やはりダメでした。  ただ、テストサーバーではこの場所に置かれています。

その他の回答 (1)

  • hira6bg
  • ベストアンサー率61% (8/13)
回答No.2

そうですかぁ。。。 > 1)CGIをキックしたユーザのホームディレクトリに.pgpassをおいてみてはどうですか??  CGIをキックするユーザーとなるとアパッチで設定されているnobodyというユーザーになるようなのですが、  このユーザーのホームは「/」となっているようです。  一応そこにおいて試してみました。(所有者root パーミッション600)  ・・・結果は失敗でした。 > 2)psqlで接続する-Uで指定したユーザのホームディレクトリに.pgpassをおいてみてはどうですか??  やはりダメでした。  ただ、テストサーバーではこの場所に置かれています。 本当に憶測ですみませんが、-Uで指定したユーザのホームディレクトリに.pgpassを配置したあと、PostgreSQLを再起動してもだめですかねぇ・・・。

asahina02
質問者

お礼

とりあえず以下のような方法で解決しましたので、ひとまず質問は締め切らせていただきます。 いろいろとアドバイスいただきありがとうざいました。 my $command = 'echo [パスワード] | psql -h [ホストIP] -U [ユーザー] -c "select * from test" |'