以前もだいぶエラーにハマってこんな感じの記事を書いた気がするのだけど、前はだいぶごちゃごちゃいろんな原因が絡んでいて複雑だったので、改めてシンプルに残しておくためにメモ。
ハマったエラー
$ bin/rails db:migrate
rails aborted! Mysql2::Error: Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
マイグレーション実行したところソケットが見つからないみたいな感じで怒られた。
解決 - プロセスを見る
$ ps ax | grep mysqld 4308 s000 S+ 0:00.00 grep mysqld
プロセス確認してみたところ動いてない。
ということで再起動
$ mysql.server restart ERROR! MySQL server PID file could not be found! Starting MySQL . SUCCESS!
なんかエラー出てるけど成功はしている...(PIDファイルが見つからないとかソケットが繋がらないとか前も起こったなあ)
$ ps ax | grep mysqld 4324 s000 S 0:00.03 /bin/sh /usr/local/Cellar/mysql@5.7/5.7.29/bin/mysqld_safe --datadir=/usr/local/var/mysql --pid-file=/usr/local/var/mysql/usernoMBP.pid 4424 s000 S 0:00.41 /usr/local/Cellar/mysql@5.7/5.7.29/bin/mysqld --basedir=/usr/local/Cellar/mysql@5.7/5.7.29 --datadir=/usr/local/var/mysql --plugin-dir=/usr/local/Cellar/mysql@5.7/5.7.29/lib/plugin --log-error=usernoMBP.err --pid-file=/usr/local/var/mysql/usernoMBP.pid 4426 s000 R+ 0:00.00 grep mysqld
プロセス見ると動いてる。
で、migrateはできて、mysqlへのログインも成功した。
とりあえず目的は果たせたので良いかな。。進捗急ぎめなので今後またエラー出るようであればしっかり調べて解決します。
解決その2
(2020/02/12 改)
単にPCを再起動するたびに毎回プロセスが切られていて、その後MySQLサーバーを立ち上げ直していないだけだった。
調べてみたら、いちいち手動で立ち上げなくても「自動起動」を設定しておけば良いらしい。
前のPC使ってた時は再起動後も勝手に立ち上がってたはずなんだけどな、、、知らない間に設定してたんだろうか?
自動起動の設定方法
homebrew-services
というのを使うらしいので、Homebrewでインストール。
$ brew tap homebrew/services
これで準備ができたので、一旦さっき立ち上げたサーバーを切り
$ mysql.server stop
今度はhomebrew-services
からMySQLのサーバーをstartする。
$ brew services start mysql Error: Formula `mysql` is not installed.
あれっ、、なんかエラー出た。
エラー文でググってみたら同じような記事があってすぐ解決。
brew list | grep mysql mysql@5.7
MySQLのバージョンを確認して、
$ brew services start mysql@5.7 Successfully started `mysql@5.7` (label: homebrew.mxcl.mysql@5.7)
成功!
ちゃんとバージョンまで明記してあげないといけなかったみたいです。
参考
mysqlのsocketエラーでrailsアプリが起動できない - Qiita
(2020/02/12追加分↓)