有給とって家でゴロゴロ過ごしていたら、うっかりやってしまった。
電気ケトルと電子レンジを同時に使ってブレーカーが落ちてしまい、zabbixで使っている msyql サーバーが起動しなくなってしまった。
zabbix-server を停止して、my.cnf で innodb_force_recovery=2 にして起動。(自分の場合、1だと起動できなかった)
[mysqld]
innodb_force_recovery = 2
これで起動はするようになったので mysqldump で dump。
mysqldump -A dump.sql
dump できたら mysql を停止して、/var/lib/mysql を削除。
innodb_force_recovery の設定も削除。
mysql のデータを初期化。
mysqld --initialize
これでmysqlサーバーが起動できるようになった。
initialize した mysql のrootのパスワードは /var/log/mysql/error.log に書き出されているらしい。
2021-05-19T07:19:24.027370Z 1 [Note] A temporary password is generated for root@localhost: N7rgN;a1*/(L
このパスワードを使って mysql -u root -p でログインして、パスワードを変更する。
set password=password('my-password');
あとは必要なユーザーを追加して、dumpしたファイルでデータベースを戻したりしてなんとか復帰。