今回は以前homebrewでMySQL5.7を入れていたパソコンにMySQL8を再インストールした際に起きた悲しいエラー
環境
Mac
Homebrew2.0.1
MySQL5.7
悲劇
MySQL8に変更してJSON型のカラムの検証を行おうとしていたため、一旦5.7をアンインストール(ここで安易にコマンドを叩いただけなのが、のちの被害に繋がってしまった。)
$ brew remove mysql@5.7 //5.7削除
⇨/usr/local/Cellar/mysql@5.7 削除
$ brew update //アップデート
$ brew info mysql
$ brew install mysql
$ mysql.server.start
Starting MySQL
. ERROR! The server quit without updating PID file (/usr/local/var/mysql/XXXXnoMacBook-Pro.local.pid).
PIDファイルが無いそうなので、エラー文に出ているファイル階層にPIDファイルを作成
そして再び実行...
$ mysql.server.start
Starting MySQL
. ERROR! The server quit without updating PID file (/usr/local/var/mysql/XXXXnoMacBook-Pro.local.pid).
...???????????????
エラーに書いてあるファイル階層まで入り中を見てみるとPIDファイルが無い。
訳がわからない状態のままもう一度PIDファイルを作成してコマンドを叩いてみた。。がやはりコマンドを叩くたびにPIDファイルが消えてしまう。
訳がわからないので、先人たちの知恵を借りるべく安直にERROR!とか書いてある部分をコピペして流してみると、同じようなエラーが出ている人たちがたくさんいた。
試したこと
権限をPIDファイルに付与する
一番多い解決方法として書かれていたのが、PIDファイルに権限が付与されていないので、書き込みができないのでエラーが出ているそう。
sudo chown -R [ユーザー名] usernoMacBook-Pro.local.pid
試しに権限を与えたのですが、やはりコマンドを叩くとPIDファイルさんがお亡くなりになられてしまう。
mysql.sockファイルを作ってみる
mysql.sockファイルがないとそれも原因で起動しないと書かれていた。
エラー文にはそんなファイル名無いので、ほぼ諦めで作ってみたが、やはり意味がなかった。
PIDファイルさんが生成されては死にを繰り返す状態が1時間続いた。
あーでもないこーでもないと続けていて、冷静に考えてみた。
errファイルがあるってことはエラーログそこに吐かれているのでは?と思い、中身をみてみるとやはり書いてあった
mysqld_safe mysqld from pid file /usr/local/var/mysql/usernoMacBook-Pro.local.pid ended
なるほど!と思い、これを検索窓へペーストして検索してみるとこのような記事にたどり着いた。
mysqlがどうしても起動しない
うん。今の僕と同じ状況だ!と思い藁にもすがる思いで読んでみた。
/usr/local/var/mysql も削除
仕方ない、こちらも削除。DBの実体なんかも含まれているが、丸っと削除(データが無くなると困る場合は、DBと同名のファイルを退避させるなど)
$ sudo rm -rf /usr/local/var/mysql
$ brew uninstall mysql
$ brew install mysql
あ。これもしかしてHomebrewではローカルデータは消してくれないの?とそこで気づき、同じようにローカルデータファイルを削除。
そして起動コマンドを叩いてみると。。。
mysql.server start
Starting MySQL
SUCCESS!
本当に助かりました。。
###### 記事に間違っている部分などありましたらコメントお願いします。