たまに以下エラーが起きることがあります。
# RAILS_ENV=production bundle exec rake db:migrate
rake aborted!
Mysql2::Error::ConnectionError: Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)
結論から言うと、DBの接続情報が誤っているためにこのエラーが起きます。
やることはconfig/database.yml
に関して以下のことになります
- 次の値に対して
-
config/database.yml
自体に設定している値 -
config/database.yml
から指定している環境変数
-
- 次の事態が起きていないかどうか確認する
- 値が間違っている
- DB設定の値が更新されていて、更新漏れが起きている
私はconfig/database.yml
では環境変数を指定することが多く、
いつの間にかに更新されていた環境変数を更新漏れしていたり、
dockerの他のコンテナで指定していたDB名と環境変数で指定していたDB名が間違っていたり
と度々このエラーに遭います。
他のエラーのときにもこのエラー起きるかもしれませんが、私の場合100%接続情報エラーなので、このエラーが紛らわしくて仕方ないです。
接続設定間違ってるよと言ってくれれば律儀に/var/run/mysqld/mysqld.sock
がどういうものを調べに行ったり、ググらなくて済むので
他の場合は以下のQiitaの場合かもしれません
https://qiita.com/fujitora/items/d341c52706d1954cae28