Unicornでデータベースが!


問題 
Unicornでデータベースが作れない!

rails db:migrate RAILS_ENV=productionが通らない!
仮説 unicornのlessを確認すると

 ERROR -- : Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2) (Mysql2::Error::ConnectionError)

と出ている

 MySQLサーバーで使っているUNIXソケットとクライアントソフトで使っているUNIXソケットのパスが違う??
ソケットに問題がある?

検証したこと
・まずMysqlが正常に起動しているか

$ sudo service mysqld status

・ソケットの確認

$  mysql_config --socket

でソケットを確認してみた
database.ymlの[ production: 〜:socket]の記述と本番環境のソケットが一致しているか


$ rails db:create RAILS_ENV=production入力後に
$ mysql -u root -pからmysqlをSHOW DATABASEで確認すると、、、

原因
そもそも、$ rails db:create RAILS_ENV=productionでDatabaseが作られていなかった!

解決方法
database.ymlのproduction:に$ rails db:create RAILS_ENV=productionで作成されるデータベース名の指定を追加する
[ production: 〜database:データベース名]

production:
  <<: *default
  database: freemarket_sample_53a_production  ←これを追加
  username: root
  password: <%= ENV['DATABASE_PASSWORD'] %>
  socket: /var/lib/mysql/mysql.sock

これでデータベースが作られるようになった。めでたし