LoginSignup
2
1

More than 5 years have passed since last update.

Mysqlを5.7が入っていたパソコンにMySQL8をHomebrewで再インストールした際に起きたエラー

Posted at

今回は以前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! 

本当に助かりました。。

記事に間違っている部分などありましたらコメントお願いします。
2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1