- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:pgpassが有効にならない?)
pgpassが有効にならない?
このQ&Aのポイント
- WEBサーバー「A」とDBサーバー「B」が存在し、接続をCGIからpsqlをコールしています。しかし、pgpassが有効にならず接続できません。
- 本番サーバーとテストサーバーの環境は同じですが、テスト環境ではpgpassが効いていない可能性があります。
- 質問者はpgpassの所有者がユーザー「X」であることやパーミッションが「600」であることを確認しました。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
推測ですみませんが。。いろいろやってみましょう。 試しに 1)CGIをキックしたユーザのホームディレクトリに.pgpassをおいてみてはどうですか?? 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を再起動してもだめですかねぇ・・・。
質問者
お礼
とりあえず以下のような方法で解決しましたので、ひとまず質問は締め切らせていただきます。 いろいろとアドバイスいただきありがとうざいました。 my $command = 'echo [パスワード] | psql -h [ホストIP] -U [ユーザー] -c "select * from test" |'
補足
> 1)CGIをキックしたユーザのホームディレクトリに.pgpassをおいてみてはどうですか?? CGIをキックするユーザーとなるとアパッチで設定されているnobodyというユーザーになるようなのですが、 このユーザーのホームは「/」となっているようです。 一応そこにおいて試してみました。(所有者root パーミッション600) ・・・結果は失敗でした。 > 2)psqlで接続する-Uで指定したユーザのホームディレクトリに.pgpassをおいてみてはどうですか?? やはりダメでした。 ただ、テストサーバーではこの場所に置かれています。