AWS RDS PostgreSQLをローカルに移動したメモ

EC-CUBEの開発を少しすることになり、、久しぶりのPostgreSQLだったので開発環境もRDSに作成したのですが、、、
開発環境にしてはちょーっとお値段がかかっておりました(月額数千円ですが)。このため、とりあえず開発環境についてはWebサーバと同居させたときのメモ。

PostgreSQLのインストール

yumで確認したところ、2017/03/29段階でAWS Linuxでインストール可能なPostgreSQLの最新版は9.5系でした。まずは、そちらをインストール。

$ yum install postgresql95*

PostgreSQLの設定

インストール完了後にDB初期化

$ service postgresql95 initdb
$ service postgresql95 start

DB領域を作成してロールを設定

$ su postgres
$ psql
postgres=# create database hogehoge;
postgres=# create role hogehogeuser with login encrypted password 'hogehogepass'

これで設定完了と、psqlをやってみると・・・エラー

$ psql -U hogehogeuser -h localhost hogehoge
psql: FATAL:  Ident authentication failed for user "hogehogeuser"

おやおやー、と/var/lib/pgsql95/data/pg_hba.confを眺めてみると、

# IPv4 local connections:
host    all             all             127.0.0.1/32            ident

こちらの設定が影響している模様なので、認証方式をmd5に変更。

# IPv4 local connections:
# host    all             all             127.0.0.1/32            ident
host    all             all             127.0.0.1/32            md5

サーバのほうをrestartさせて、、localhostで接続ができるようになりました。

環境はできたので、RDSのPostgreSQLからpg_dumpしたデータを新DBに流し込んで、、database.ymlの接続先をlocalhostに変更して、、無事移行完了しました。

 

と、、localhostで接続できないと、EC-CUBEもlocalhost指定で接続できなかったというちょいハマりがあったため、、備忘メモ。