2016年8月31日水曜日

PSQLでの接続でパスワード入力を省略する

PostgreSQLをLinuxで使っていると必須のPSQL。接続が毎度面倒なのを楽にする方法。

ここでは、AWSでEC2のAPサーバーからRDSのPostgreSQLにつなぐ手順のメモをする。

前提として、RDSのPostgreSQLはパブリックアクセス不可、APサーバーと同じVPC、セキュリティグループという状態。

セキュリティグループで、APサーバーからPostgreSQL(ポート5432)への接続を許可する。

APサーバーに
yum install -y postgresql
でPSQLを入れる。サーバーは入れない。

で、このコマンドで接続できる。
psql -h endpointxxxxx.ap-northeast-1.rds.amazonaws.com -d dbname -U dbusername

ただ、毎度パスワードを聞かれるので面倒くさい。

そこで、普段使うユーザーでホームディレクトリに

  1. .pgpass (頭にドット)というファイルを作る
  2. アクセス権を600にする
  3. 中身に以下を書く。
endpointxxxxx.ap-northeast-1.rds.amazonaws.com:5432:dbname:dbusername:パスワード
これで、パスワードを聞かれなくなる。

なお、記述が間違っていると普通に無視される(エラーとか出ない)。自分は、ポート番号を書き忘れたりして「あっれー?なんでパスワード聞かれるんだ?」となった。

追記

上記の方法はどうもうまくいきにくい。
以下の方がかんたん。

ホームにある.bashrcに、以下を書く。
export PGPASSWORD=password

=の横に空白とか入れるとダメ。


0 件のコメント:

コメントを投稿