ローカルで動かしている自分用のアプリにアクセスしたらデータが全く取得できなくなっていた。 原因を調べたら、とりあえずmysqlが動いてないことが分かり、そりゃデータは取れない。 結局、mysqlが動かなくなったのは適当に実行したbrew upgradeによってmysqlのバージョンが8.x.xから9.x.xに変わったことだったのだが、それにたどり着くまでに何をしたかのメモを残す。

がんばって/opt/homebrew以下を探して、/opt/homebrew/var/mysql/hotoku-macmini-2020.lan.errにログファイルを見つける。 このファイルの内容から、ver up関連であることが分かった。 エラーメッセージで検索すると linkにたどり着いた。 それによるとuninstall後にmysql@8.4をインストールすると動く、という情報があったのでtry・・するのだが、念の為データ本体をバックアップした。 データ本体は、``/opt/homebrew/var/mysqlの下にDB名のフォルダがあり、その中にテーブル名.ibd`というファイルとして保存されている。 必要なDBのデータを別のフォルダにコピーしてから、以下を実行。

  • brew uninstall mysql
  • brew install mysql@8.4
  • brew sevices start mysql@8.4

これによってmysqlが復活し、結果として、データ本体もユーザー情報(パスワードとか)のメタデータも壊れていないようだった。

linkによると、.ibdファイルとテーブル定義情報(あるいは.frmファイル)があれば復元可能とのことだが、今回は幸いにも必要なかったので試していない。