unicorn起動しようとしてPostgreSQL接続エラーが出たので自分用メモ
環境
- CentOS Linux release 7.1.1503 (Core)
- unicorn v5.0.1
- PostgreSQL 9.2.14
エラー内容
- Unicorn起動してもエラー
$ bundle exec unicorn_rails -c config/unicorn.rb -E production -D master failed to start, check stderr log for details
- ログ見てみる
$ cat log/unicorn.log I, [2015-12-05T14:39:58.321949 #3198] INFO -- : Refreshing Gem list I, [2015-12-05T14:39:59.624932 #3198] INFO -- : unlinking existing socket=/tmp/unicorn.sock I, [2015-12-05T14:39:59.625140 #3198] INFO -- : listening on addr=/tmp/unicorn.sock fd=10 E, [2015-12-05T14:39:59.629200 #3198] ERROR -- : FATAL: Ident authentication failed for user "unityroom" (PG::ConnectionBad)
PostgreSQLに接続できてない様子
- PostgreSQL側のログ
# tail /var/lib/pgsql/data/pg_log/postgresql-Sat.log LOG: could not connect to Ident server at address "::1", port 113: Connection refused FATAL: Ident authentication failed for user "unityroom"
Ident authentication
PostgreSQL: Documentation: 9.0: Authentication methods
どうもOSにログインしているユーザー名とDB接続するユーザー名が違うと接続できない設定みたい。
ググっていくとpg_hba.confってファイルで設定するらしい。
https://www.postgresql.jp/document/9.3/html/auth-pg-hba-conf.html
編集する
# vi /var/lib/pgsql/data/pg_hba.conf
# "local" is for Unix domain socket connections only local all all peer <= md5に変更 # IPv4 local connections: host all all 127.0.0.1/32 ident <= md5に変更 # IPv6 local connections: host all all ::1/128 ident <= md5に変更
PostgreSQL再起動
# systemctl restart postgresql
確認
$ bundle exec unicorn_rails -c config/unicorn.rb -E production -D
お??
起動確認
$ ps -ef | grep unicorn | grep -v grep unityro+ 4415 1 4 15:33 ? 00:00:01 unicorn_rails master -c config/unicorn.rb -E production -D unityro+ 4419 4415 0 15:33 ? 00:00:00 unicorn_rails worker[0] -c config/unicorn.rb -E production -D unityro+ 4422 4415 0 15:33 ? 00:00:00 unicorn_rails worker[1] -c config/unicorn.rb -E production -D unityro+ 4425 4415 0 15:33 ? 00:00:00 unicorn_rails worker[2] -c config/unicorn.rb -E production -D
うごいたーーー