読者です 読者をやめる 読者になる 読者になる

naichi's lab

3日後の自分(他人)への書き置き

unicorn起動時にPostgreSQL接続エラー【Ident authentication failed for user (PG::ConnectionBad)】

Ruby on Rails 4 Unicorn PostgreSQL

unicorn起動しようとしてPostgreSQL接続エラーが出たので自分用メモ

環境

  • CentOS Linux release 7.1.1503 (Core)
  • unicorn v5.0.1
  • PostgreSQL 9.2.14

エラー内容

  1. Unicorn起動してもエラー
$ bundle exec unicorn_rails -c config/unicorn.rb -E production -D
master failed to start, check stderr log for details
  1. ログ見てみる
$ 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に接続できてない様子

  1. 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

うごいたーーー