rake aborted!
ActiveRecord::ConnectionNotEstablished: Can't connect to local MySQL server through socket '/tmp/mysql.sock' (38)
というエラーが発生した。/tmp
ディレクトリを確認してもmysql.sock
はしっかりと存在する。
mysqlを起動してみると下記のエラーが起こっていることが判明した。
$ sudo mysql.server start
Password:
Starting MySQL
.Logging to '/usr/local/var/mysql/fujiwaratakuminoMacBook-Pro.local.err'.
ERROR! The server quit without updating PID file (/usr/local/var/mysql/fujiwaratakuminoMacBook-Pro.local.pid).
というエラーが起こっていることが判明した。
#pidファイルとは?
「.pid」で終わっているファイルがpidファイルです。このファイルには、該当するプロセスのプロセスIDなどの情報が記述されています。たとえば、/var/run/crond.pidファイルには、crondのプロセスIDが記述されています。
このファイルは、スクリプトやほかのプロセスで利用されます。プロセスIDが記述されているので、このファイルはプロセスの制御(再起動や停止など)、プロセス同士の連携などに利用されます。
参照先 「/var/run」ディレクトリ
ググった末にmysql起動時でエラーが起きた時の対処の記事を参考に
$ sudo rm /tmp/mysql.sock
$ chown -R _mysql:_mysql mysql
を実行。再度sudo mysql.server restart
を実行するが、
$ sudo mysql.server restart
ERROR! MySQL server PID file could not be found!
Starting MySQL
.Logging to '/usr/local/var/mysql/fujiwaratakuminoMacBook-Pro.local.err'.
ERROR! The server quit without updating PID file (/usr/local/var/mysql/fujiwaratakuminoMacBook-Pro.local.pid).
と違うエラーが発生した。/tmp/mysql.sock
を消したのがまずかったのかと思った。
今度は、mysql 起動時のThe server quit without updating PID file エラーの回避法を参考にした。
$ ls /usr/local/var/mysql
を実行してみると*****.local.pid
がなかった。
$ touch /usr/local/var/mysql/*****.local.pid
を実行。sudo mysql.server restart
を実行してみるが、*****.local.pid
に権限がなかったので、
sudo chown -R _mysql:_mysql /usr/local/var/mysql/
これで無事動くことができました!
#参考にさせて頂いていたサイト
「/var/run」ディレクトリ
mysql起動時でエラーが起きた時の対処
mysql 起動時のThe server quit without updating PID file エラーの回避法