2019-04-25 mysql
mysql 8.0.16 が公開されていたので更新後に再起動したら失敗。
エラーログを確認すると以下記述があり、8.0.15 → 8.0.16へのアップグレード処理で失敗している様子。
[System] [MY-013381] [Server] Server upgrade from '80015' to '80016' started. [ERROR] [MY-013384] [Server] Could not create server upgrade info file at '/var/lib/mysql/'. [ERROR] [MY-013380] [Server] Failed to upgrade server. [ERROR] [MY-010119] [Server] Aborting
8.0.15 までは、mysql更新後に mysql_upgrade
コマンドでデータベースのアップグレードを行っていたんだけど、8.0.16 からはサーバ側で自動アップグレードする仕様になったとのこと。試しに 8.0.16 で mysql_upgrade
を実行すると以下コメントが表示される。なのになぜ失敗してしまう…?
The mysql_upgrade client is now deprecated. The actions executed by the upgrade client are now done by the server.
エラーログに「Could not create server upgrade info file at '/var/lib/mysql/'」とあったので、/var/lib/mysql/
ディレクトリ配下を確認、mysql_upgrade_info
というファイルを発見。中身は「8.0.15」と記述されている。
このファイルは mysql_upgrade
コマンド実行時に使用していたようなのでこれが原因かもと気付き、このファイルを適当にリネーム後、再度 service mysqld start
を実行で無事に起動。ログにも以下が表示された。
[System] [MY-013381] [Server] Server upgrade from '80015' to '80016' started. [System] [MY-013381] [Server] Server upgrade from '80015' to '80016' completed.
律儀に手動アップグレードを行っていた者だけが遭遇する罠、か?