Redshift(PostgreSQL) に psql で接続しようとすると,毎回対話形式でパスワードが聞かれるため、バッチ処理などでワンライナーとして使う場合に困ってしまう.psql のドキュメントを見てもパスワードを指定するオプションはなくて、-p
はポートの指定なので注意.
psql ツールを使用してクラスターに接続する - Amazon Redshift
Password for user xxx:
そこで .pgpass の出番!
詳しくは以下のエントリーを参照するとして,.pgpass
というファイルにパスワードも含めた接続情報を記載して,実行ユーザのホームディレクトリ直下に置けばOK.パーミッションは 600
固定なので,忘れずに chmod
しておくこと.これで対話なく接続できるようになる.
psql -h ${HOST} -U ${USER} -d ${DATABASE} -p ${PORT} xxx=> \q
Pgpass/ja - PostgreSQL wiki
psql接続時に対話でパスワードを入力しない - shibainu55日記
PostgreSQLでパスワードを省略する(.pgpass)