psqlコマンドでPostgreSQLに接続し、SQLを実行するとき、パスワードを入力する必要となっていますが、Shellでpsqlコマンドを実行するとき、パスワードを入力せず、実行したい場合、以下の方法をまとめました。
.pgpassに入れる方法①
.bash_profileや.bashrcと同じホームディレクトリに.pgpassファイルを追加したら、パスワードを省略できます。※.pgpassの置き場所変更は環境変数:PGPASSFILEにて設定可能です。
.pgpassに記入内容:
ホスト名:ポート:データベース:ユーザ:パスワード
例)17.12.12.**:5432:dbname:postgres:password
例)17.12.12.**:5432:dbname:postgres:password
.pgpassの権限は600にする必要がある。600以外の場合は警告が表示され、パスワード入力画面が求められます。
環境変数に入れる方法②
パスワードの環境変数
環境変数にパスワードを入れることによって、パスワードを省略できます。
記述内容:
#PostgreSQLのパスワードを環境変数に挿入
export PGPASSWORD=password
export PGPASSWORD=password
他の環境変数について
#ホスト名
export PGHOST=ホスト名
#ポート
export PGPORT=5432
#DB名
export PGDATABASE=postgres
#ユーザ
export PGUSER=postgres
#パスワード
export PGPASSWORD=password
#パスワードファイル格納先
export PGPASSFILE=~/.pgpass
export PGHOST=ホスト名
#ポート
export PGPORT=5432
#DB名
export PGDATABASE=postgres
#ユーザ
export PGUSER=postgres
#パスワード
export PGPASSWORD=password
#パスワードファイル格納先
export PGPASSFILE=~/.pgpass
まとめ
- .pgpass
- PostgreSQLで推奨されている。
- ホームディレクトリに置く為使用するユーザに限られる。
- psqlに接続する設定ファイルが必要です。
- 環境変数
- PostgreSQLでは非推奨
- ホームディレクトリがないユーザでも使用できる。
- 使用されたくないユーザにもパスワードが分かれる。