■ はじめに
意外とpsqlでパスワードを省略することが多く、 AWS CodeBuildでも使用しそうなので、メモしておく
目次
【1】Linux 1)~/.pgpassに入れる方法 2)環境変数「PGPASSWORD」に入れる方法 【2】Windows
【1】Linux
方法は2つ。 1)~/.pgpassに入れる方法 2)環境変数「PGPASSWORD」に入れる方法
【1】~/.pgpassに入れる方法
[1]「~/.pgpass」ファイル作成 [2] 権限を600にする
[1] 「~/.pgpass」ファイル作成
# hostname:port:database:username:password localhost:5432:sample_db:postgres:password # echo "localhost:5432:sample_db:postgres:password" > ~/.pgpass # とかで追加
[2] 権限を600にする
# 権限が600なのでスーパユーザ以外はパスワードがばれない chmod 600 ~/.pgpass
補足1:「パスワード」以外が「*」で省略可能
# AWS環境などでホスト名がよく変わる場合に便利 *:5432:sample_db:postgres:password
補足2:シェルスクリプトを作成
#!/bin/sh host_name="localhost" port="5432" db_name="sample_db" user_name="postgres" user_password="password" echo "${host_name}:${port}:${db_name}:${user_name}:${user_password}" > ~/.pgpass chmod 600 ~/.pgpass
補足3:環境変数「PGPASSFILE」
* 「~/.pgpass」を変更したい場合に 環境変数「PGPASSFILE」で指定したファイルでもできるらしい
https://qiita.com/nanan/items/f56df8f3706bf4eeed0d
2)環境変数「PGPASSWORD」に入れる方法
export PGPASSWORD=password
使用上の注意
https://www.postgresql.jp/document/8.1/html/libpq-envars.html
より抜粋 ~~~~~~~~~~ この環境変数は、 セキュリティ上の理由(いくつかのオペレーティングシステムでは root以外のユーザがpsコマンド経由で環境変数を見ることができるため)から 現在では推奨されていません。 ~~~~~~~~~~ => psコマンドについては、以下の関連記事を参照のこと。
ps コマンド ~ プロセス一覧の表示 ~
https://dk521123.hatenablog.com/entry/2018/02/02/181500
【2】Windows
Linuxの「1)~/.pgpassに入れる方法」とほぼ同じ ファイルパス・ファイル名が違うだけ。
%APPDATA%\postgresql\pgpass.conf
https://qiita.com/t15/items/e89eea47b9d2e83c42ac
# フォルダ「postgresql」がない場合は自分で作成 # hostname:port:database:username:password localhost:5432:sample_db:postgres:password
参考文献
https://kaede.jp/2015/10/27002723.html
https://qiita.com/met_ganchan13/items/2af29ba1f6da87199de0
http://www.ksknet.net/postgresql/post_36.html
関連記事
JDBC を シェルスクリプトでパースする
https://dk521123.hatenablog.com/entry/2020/03/24/223323
ps コマンド ~ プロセス一覧の表示 ~
https://dk521123.hatenablog.com/entry/2018/02/02/181500