4

ユーザー postgres として bash スクリプトを介して PostgreSQL CLI (psql) を実行すると、パスワードなしで手動で実行できるにもかかわらず、パスワード プロンプトが送信されます。スクリプトに -w を入れようとすると、次のエラーが発生します。

psql: fe_sendauth: パスワードが指定されていません

パスワードなしで自動化された方法で psql を実行できますか?

4

2 に答える 2

12

パスワードファイルpgpass.confを使用するか、PGPASSWORD変数を使用できます。

ローカル開発の場合、またはセキュリティが問題にならない場合は、ファイルを変更して PostgreSQL を信頼認証モードで実行するように構成することもできpg_hba.confます。

于 2012-05-04T18:26:04.890 に答える
1

スクリプトが実行されているホストから接続している特定のユーザーの認証がなくても問題ない限り、できます。このためにpghba.confは、サーバーに次の行を追加するだけです (PostgreSQL デーモンを再起動する必要があります)。

host YOUR_DB YOUR_USER YOUR_IP trust

どこ:

  1. YOUR_DB: データベース名
  2. YOUR_USER: スクリプトの実行に使用しているユーザー
  3. YOUR_IP: スクリプトが実行される IP

他のオプションとして、ユーティリティを使用することもできexpectます (Linux や UNIX バリアント、または cygwin などのシェルを使用していると仮定します)。

于 2012-05-04T18:25:29.407 に答える