ユーザー postgres として bash スクリプトを介して PostgreSQL CLI (psql) を実行すると、パスワードなしで手動で実行できるにもかかわらず、パスワード プロンプトが送信されます。スクリプトに -w を入れようとすると、次のエラーが発生します。
psql: fe_sendauth: パスワードが指定されていません
パスワードなしで自動化された方法で psql を実行できますか?
ユーザー postgres として bash スクリプトを介して PostgreSQL CLI (psql) を実行すると、パスワードなしで手動で実行できるにもかかわらず、パスワード プロンプトが送信されます。スクリプトに -w を入れようとすると、次のエラーが発生します。
psql: fe_sendauth: パスワードが指定されていません
パスワードなしで自動化された方法で psql を実行できますか?
パスワードファイルpgpass.confを使用するか、PGPASSWORD変数を使用できます。
ローカル開発の場合、またはセキュリティが問題にならない場合は、ファイルを変更して PostgreSQL を信頼認証モードで実行するように構成することもできpg_hba.conf
ます。
スクリプトが実行されているホストから接続している特定のユーザーの認証がなくても問題ない限り、できます。このためにpghba.conf
は、サーバーに次の行を追加するだけです (PostgreSQL デーモンを再起動する必要があります)。
host YOUR_DB YOUR_USER YOUR_IP trust
どこ:
他のオプションとして、ユーティリティを使用することもできexpect
ます (Linux や UNIX バリアント、または cygwin などのシェルを使用していると仮定します)。