Homebrew で MySQL を 5.6 から 5.7 にあげたときのエラーの解決方法
Homebrew で導入している MySQL のバージョンを 5.6.x から 5.7.x にあげたときに MySQL が立ち上がらなくなってしまいました。
$ brew upgrade mysql
$ mysql.server start
Starting MySQL
... ERROR! The server quit without updating PID file (/usr/local/var/mysql/[マシン名].local.pid).
なんだろうなと思い Stack Overflow を検索してみましたがこれといった解決法が見つかりません。
「自分の場合はこれで解決したよ!」という事例が山ほどありますが、ひとつひとつ試していくのは億劫なのでちゃんとエラーログを読むことにします。
Hombrew の MySQL のエラーログは /usr/local/var/mysql/
あたりにあります。
$ less /usr/local/var/mysql/[マシン名].local.err
直近のエラーを検索すると次のような記述が見つかりました。
2016-MM-DDT12:56:00.865392Z 0 [ERROR] unknown variable 'innodb_additional_mem_pool_size=16M'
2016-MM-DDT12:56:00.865413Z 0 [ERROR] Aborting
innodb_additional_mem_pool_size
なんて変数知らないからアボートしたよ、と言われています。
なんだかよくわかりませんが、公式のドキュメントを読むと、この変数は MySQL 5.7 で廃止されて使えなくなってしまったようです。
問題の原因がわかったので、設定ファイルの中から innodb_additional_mem_pool_size
に関係する部分を探して削除します。
私の場合は設定ファイルとして /etc/my.cnf
を使っているのでこのファイルを開きます。
$ sudo vi /etc/my.cnf
該当行を削除して再度最初のコマンドを実行します。
$ mysql.server start
Starting MySQL
.. SUCCESS!
無事立ち上がりました。
以上です。
Homebrew の MySQL のアップデート作業は、既存の DB や設定ファイルがそのまま引き継がれる点はずぼらな私にはとてもうれしいのですが、設定の細かな部分までは追えていないライトユーザな私には少し気が重たくなる作業です。
今回の学び
MySQL で次のエラーメッセージが出たらまずエラーログを読むべし。
... ERROR! The server quit without updating PID file
MySQL が立ち上がらない原因は無数にあるので、オンラインで闇雲に検索するよりもエラーログをきちんと読んだ方が早いと思います。