XAMPPを使用していると、MySQLを起動しようとしたときに「Error: MySQL shutdown unexpectedly.」というエラーが表示され、起動できなくなることが、たまにあります。次のスクリーンショットのような感じです。
このエラーの解決方法を解説します。
XAMPPに組み込まれているデータベースは、正確には「MariaDB」です。しかし、XAMPPのコントロールパネルでは「MySQL」と表記されているので、この記事でも「MySQL」と表記することにします。
- Windows11 Home (23H2)
- XAMPP 8.2.12
エラー解決手順
このエラーが出たら、まずは、XAMPP自体を再起動してみてください(一旦QUITして、再度起動する)。再起動で、エラーは解消する場合があります。しかし、XAMPPを再起動してもエラーが出る場合は、以下の対応を行ってみてください。
①データ・フォルダの退避
フォルダ「C:¥xampp¥mysql¥data」をリネーム(名前の変更)して退避します。この記事を執筆しているのは、2024年9月7日なので「C:¥xampp¥mysql¥data_20240907」にリネームしました。
【リネーム前】
【リネーム後】
②もともと存在する「backup」フォルダをコピーしてリネーム
フォルダ「C:¥xampp¥mysql」直下には、もともと「backup」というフォルダが存在しています。このフォルダをコピーして「data」という名前にリネームします。
【コピー前】
【コピー中】
【コピー後】
③上記「①」で退避したフォルダから、DBのフォルダをコピー
先ほどの「①データ・フォルダの退避」でリネームしたフォルダの中には、自分で作成・運用していたDBと同じ名前のフォルダがあります。このフォルダは、データベースの中身が入っているフォルダです。
例として「mysitedb」という名前のデータベースを運用している場合、「C:¥xampp¥mysql¥data_20240907¥mysitedb」というフォルダが存在してるハズです。
このフォルダを手順②でコピーして作成した「data」フォルダにコピーします。
- 自分で作成・運用していたデータベースが2つあったとしたら2つのフォルダ、3つあったとしたら3つのフォルダをコピーするわけです。
- フォルダ「mysql」「performance_schema」「phpmyadmin」「test」は、コピーしません。
【コピー前】
【コピー後】
④上記「①」で退避したフォルダから、ファイル「ibdata1」をコピー
最後の手順です。
「①データ・フォルダの退避」でリネームしたフォルダの中に「ibdata1」というファイルがありますので、それを手順②でコピーして作成した「data」フォルダにコピーします。
【コピーするファイル。このファイルを「data」にコピーしてください。】
MySQLを起動してみる
これまでの対応で、MySQLは起動できるようになっています。今までのデータベースも、初期化されたりすることなく、そのまま利用できます。
この記事で解説している対応を実施すると、MySQLのユーザー「root」のパスワードが初期されます。(つまり、パスワード未設定の状態になります。)
「root」のパスワードを変更して運用していた場合は、注意してください。
エラー「MySQL shutdown unexpectedly」の対処法は以上です。