ヤマアラシのジレンマ

Das Dilemma der Stachelschweine - 「心の家路」のブログ

XAMPPでMySQLが起動しないときのためのメモ

XAMPPを使っていて、時々MySQL(MariaDB)が壊れて起動しなくなってしまうので、その修復方法のメモ。

XAMPP Control Panel の MySQL が緑色に点灯せず、PID(s) や Port(s) もブランクのまま、Startボタンが表示されていて、下のステータスには、こんな感じの赤い行が表示される(Apacheは動いている)。

7c7ec0b0ffc2e0d0f46b5665825a7681.png

16:57:37 [mysql] Attempting to start MySQL app...
16:57:38 [mysql] Status change detected: running
16:57:39 [mysql] Status change detected: stopped
16:57:39 [mysql] Error: MySQL shutdown unexpectedly.
16:57:39 [mysql] This may be due to a blocked port, missing dependencies,
16:57:39 [mysql] improper privileges, a crash, or a shutdown by another method.
16:57:39 [mysql] Press the Logs button to view error logs and check
16:57:39 [mysql] the Windows Event Viewer for more clues
16:57:39 [mysql] If you need more help, copy and post this
16:57:39 [mysql] entire log window on the forums

/xampp/mysql/data/mysql_error.log を見ると、エラーの起きた時間あたりにこんな行があった。

2020-08-27 16:57:37 0 [ERROR] mysqld.exe: Aria recovery failed. Please run aria_chk -r on all Aria tables and delete all aria_log.######## files

Aria FAQRemove logs and run aria_chk on your *.MAI files という荒技が書いてあったのでやってみる。

aria_chk.exe は \xampp\mysql\bin に、*.MAIは \xampp\mysql\data\mysql にある

cd \xampp\mysql\data\mysql
..\..\bin\aria_chk -r *.mai
cd ..
del aria_log.????????

これで XAMPP Control Panel の MySQL の Start を押すと、

17:14:09 [mysql] Attempting to start MySQL app...
17:14:09 [mysql] Status change detected: running

ダメだった場合は、さらに

del *.00????
del *.info
del *.index

を試してみる。del *.* でもいいかもしれない。(つまり \xampp\mysql\data のファイルを消す(サブフォルダは残す))。

私の場合には、Windowsのリブート後に起きることが多い。DBのatomicな更新の途中で強制終了が起きると、一貫性が保持できなくなってしまうのだろうか。

コメントする