背景
homebrew経由でmysqlをダウングレードしようとした時に、いろいろエラーにぶち当たった。「まぁ、mysqlのエラーなんてよくある話だし、すぐ治るっしょ!」って思ってたらなんだかんだ30分ハマった。
ちまたにある情報は、mysql5.5 -> 5.6にあげるときのエラーだから、割と最新情報がなかなか見つからなかったので、アップデート。
バージョンは以下のとおり。これで足りるかな?
mysql : 5.6.34
MaxOS : Sierra 10.12.2
Homebrew 1.1.5
やった手順
どの手順で進めていってエラーにはまったか。
brew install mysql #mysql 5.7系が入る
brew uninstall mysql # 5.7じゃなくて5.6系がいい
-
brew install mysql@5.6
` sudo mysql.server start # エラー出る
エラー原因
- 前に使ってたDB情報が、
/usr/var/local/mysql
内に残っていた - 実行権限がおかしい
- プロセスがやたら立ち上がる
エラー1: 前の情報を消す
DBのデータをそのまま消しちゃう。復帰できなくなっちゃうと困るから一応残しておいたほうがいいので、コピーをとっておく。
$ brew uninstall mysql
# DBのデータをコピー
$ cp /usr/local/var/mysql /usr/local/var/ex_mysql
$ rm -rf /usr/local/var/mysql/
$ brew install mysql@5.6
これで消えて、その後ちゃんと正常に5.6系と接続されるDBのインストール完了
エラー2: 実行権限
チェックしなきゃいけなかったのは2箇所。
/tmp/mysql.sock
-
/usr/var/local/mysql
配下
ここで大いにはまったんだけど、homebrewのバージョンによってか、ユーザーの実行環境によってか、意見が2通りある。
意見1: 両者の所有者を_mysqlにする。sudo chown -R _mysql:_mysql /path/to/dir
意見2: 両者の所有者をlocal のユーザーネームにする。
どうやってmysqlコマンドの実行者を調べればいいかはわからなかったんだけど、同じディレクトリにいる他のファイルと所有者を合わせておけば問題ないことはわかった。
もう一個やらなきゃいけないのは、以下のコマンド。これはおそらく必須。
sudo chmod -R o+rwx /usr/local/var/mysql
エラー3: プロセスがなぜかたくさん立ち上がる。
迷わずkill
ps -ef | grep mysql
kill -9 ID
で全部kill。これで動いた。