Ruby on Rails で MySQL を利用したら "No such file or directory - /tmp/mysql.sock" というエラーが表示されてしまいます
MySQL で接続のために生成している UNIX socket のファイルが /tmp/mysql.sock にないために発生しています。 MySQL は default でこのパスにファイルを生成しますが、設定によって変更されている場合があります。この場合、明示的に設定してあげる必要があります。
- MySQL が UNIX socket をどこに生成しているかを確認
mysqladmin variables | grep socket
- config/database.yml のデータベース設定の 1 つとして UNIX socket のパスを追記(データベース名やユーザー名と同様に記述すればよい)、以下 "/var/lib/mysql/mysql.sock" だった場合の例
-
socket: /var/lib/mysql/mysql.sock
- WEBrick を再起動