LoginSignup
0
0

More than 5 years have passed since last update.

MySQLのバージョンをMacで変更した際、 ERROR! The server quit without updating PID file エラーで起動出来なくなった問題

Last updated at Posted at 2019-01-16

お馴染みのよくQiitaで見かけるMySQLが起動出来ないエラーに関する記事です。
新マックにて、homebrewでMySQLのバージョンを8から5.7に変更した際に起こりました。

$ brew install mysql@5.7

この後MySQLを起動するため、

$ mysql.server start

と打つと、
. ERROR! The server quit without updating PID file (/usr/local/var/mysql/user/pid)
のエラーが起きました。

ググってヒットしたのは、パーミッション系です。

sudo chown -R _mysql:_mysql /usr/local/var/mysql/

のコマンドで解決したケースが多いみたいだったので、打ってみますが、エラーは解消せず。

次によくあったのが、mysqlのプロセスをkillしてみたり、入れ直したりなどで、それらも試みましたが、ダメでした。

いくつかググって見ていると、こちらでログを見るように書かれていたので、まずはログを確認しました。
これも、どれがログファイルかすぐには分からず、sudo tail -fを打ってリアルタイムに書き換わっている場所を、/usr/local/var/mysql/下で探しました。

/usr/local/var/mysql/マック名.err
というファイルにログが更新されていたので、そちらを見てみました。

sudo tail -f /usr/local/var/mysql/マック名.err

おびただしいエラーログがあったので、エラーの発生時点まで遡ってみると、

スクリーンショット 2019-01-16 23.46.43.png

NoteからERRORに切り替わっている場所が!

[ERROR] Can't start server: Bind on TCP/IP port: Address already in use
2019-01-16T14:03:24.236514Z 0 [ERROR] Do you already have another mysqld server running on port: 3306 ?

どうやら既に起動中との事です、それを見てハッとしました。自分はDockerでMySQLを立ち上げていたので、それとローカルのMySQLがもしやポートで競合しているのではと思い、my.cnfからポートを変更するようにしました。

$ mysql --help | grep my.cnf
を打って、出てきた候補から、ファイルが書き込まれている部分を調べました。

自分の場合は/usr/local/etc/my.cnfにあったので、そちらにて、port=3307という指定を追加しました。

# Default Homebrew MySQL server config
[mysqld]
# Only allow connections from localhost
bind-address = 127.0.0.1
# この行を追加
port=3307

再度
$sudo mysql.server startすると、
$..Success!

と表示。ようやく解決しました。

同じ環境でDockerなどを立てて複数動かしてる場合は、ポートを変える必要があるという事です。

追伸

Mac自体を再起動すると、バージョンが8に戻っていてまたコケた。

とりあえずこちらの方法で、MySQLを入れ直して対処。

0
0
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
0
0