LoginSignup
1
2

More than 5 years have passed since last update.

mysqlのエラーがなかなかググっても治らなかった話。多分バージョンの問題・

Posted at

背景

homebrew経由でmysqlをダウングレードしようとした時に、いろいろエラーにぶち当たった。「まぁ、mysqlのエラーなんてよくある話だし、すぐ治るっしょ!」って思ってたらなんだかんだ30分ハマった。

ちまたにある情報は、mysql5.5 -> 5.6にあげるときのエラーだから、割と最新情報がなかなか見つからなかったので、アップデート。

バージョンは以下のとおり。これで足りるかな?

mysql : 5.6.34
MaxOS : Sierra 10.12.2
Homebrew 1.1.5

やった手順

どの手順で進めていってエラーにはまったか。

  1. brew install mysql #mysql 5.7系が入る
  2. brew uninstall mysql # 5.7じゃなくて5.6系がいい
  3. brew install mysql@5.6`
  4. sudo mysql.server start # エラー出る

エラー原因

  1. 前に使ってたDB情報が、/usr/var/local/mysql内に残っていた
  2. 実行権限がおかしい
  3. プロセスがやたら立ち上がる

エラー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箇所。

  1. /tmp/mysql.sock
  2. /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。これで動いた。

1
2
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
1
2