MacのMySQLが壊れたのを復旧

brewで他のものを入れた時にアプデが走ってしまったのが原因かもしれないが、動かなくなっていた。

まずはバージョン確認が大事。
/opt/homebrew/var/mysql/mysql_upgrade_history
これには8.4.2から8.4.4までアップグレードしてきた履歴が書いてあったが、AIが勝手に8.3だったことでエラーと判断してて、そのせいでかなり時間がかかった。

/opt/homebrew/var/mysql
をバックアップとっておいた上で中身を全部消して、TimeMachineで大丈夫そうなところまで戻し、下記コマンドを実行したらとりあえず読み込みはできた。

sudo chmod -R a+rwX /opt/homebrew/var/mysql
sudo chown 999:999 /opt/homebrew/var/mysql

docker run –rm -it \
–platform linux/arm64 \
-v /opt/homebrew/var/mysql:/var/lib/mysql \
-e MYSQL_ALLOW_EMPTY_PASSWORD=yes \
-p 3306:3306 \
–user root \
mysql:8.4.4 \
bash -c “mysqld –skip-grant-tables –innodb_force_recovery=6”

そこからデータをエクスポートして、初期化して、インポートして復旧。大変だった。


Categories:

Tags: