XAMPP(ザンプ)で「Error: MySQL shutdown unexpectedly.」というエラーが出てMySQLをスタートできない時の復旧方法です。
ローカル環境にサーバーを構築できるXAMPPですが、MySQLの「Start」ボタンを押した時に、このエラーが出て起動できなくなることが割と良くあります。
そんな時、エラーの復旧方法としてXAMPPフォルダ内のバックアップデータを使って復旧する方法がありますので、やり方を当記事でご紹介します。
この記事の目次
XAMPP:MySQL shutdown unexpectedly.の復旧方法
XAMPPを普段から問題なく使っていても、ある日突然「Error: MySQL shutdown unexpectedly.」というエラーが出てMySQLが起動できなくなることがあります。
MySQL shutdown unexpectedly.
This may be due to a blocked port, missing dependencies,
improper privileges, a crash, or a shutdown by another method.
【日本語訳】
MySQLが予期せずシャットダウンしました。
これは、ブロックされたポート、欠落した依存関係、不適切な特権、クラッシュ、または他の方法によるシャットダウンが原因である可能性があります。
経験上、XAMPPで起きるエラーの中でもダントツで多いのがこのエラーです。
エラーにも説明がありますがXAMPPで「MySQL shutdown unexpectedly.」が発生する原因には以下のようなものがあります。
- MySQLを起動したままパソコンをシャットダウン。
- Windowsアップデートに伴う何らかのPC環境の変更。
- ポート80,443の競合。(これは今回はあまり関係ないかも)
特にやってしまいがちなのがMySQLを正常終了しないままパソコンをシャットダウンしたことによるデータベースファイルのクラッシュですね...。
そんなこんなで良く発生するエラーなので、XAMPPあるあるかもしれません。
エラーについてはこの辺にしておいて復旧方法に参りましょう・w・
XAMPPのバックアップを使って復旧する手順
「MySQL shutdown unexpectedly.」のエラーを修復するには、XAMPPフォルダの中にあるバックアップデータを使用するのが手っ取り早いです。
この復旧手順は以下の通りです。
- /xampp/mysql/dataをフォルダごとコピー(避難)する
- dataフォルダ内の自分のDBを除くデータを全て削除する
- /xampp/mysql/backup内の全ファイルをdataにコピーする
- 非難したdataフォルダから「ibdata1」をdataにコピー(上書き)する
- XAMPP(Apache)を再起動する
XAMPPは以下の場所にバックアップデータがあります。
XAMPPインストールドライブ/xampp/mysql/backup
「backup」というフォルダがバックアップなので、その場所から正常に動作していた時のデータベース関連のファイルを復元する感じです。
手順は難しくないのですが、文章だけだと伝わりにくいと思います...。
なので、ここからは作業手順を画像付きで解説していきます・w・
画像をメインに見ながら進んでもらえると若干スムーズかな?と思います。
既存の「data」フォルダをどこかに避難する
まずは今まで自分が使ってきたXAMPPのデータのバックアップを取ります。
「xampp」フォルダ内にある「data」というフォルダです。
「ドライブ名/xampp/mysql」内にある「data」を分かりやすい所にコピーします。
どこでも良いのでコピーし、これを自分のデータのバックアップとしておきます。
(このフォルダ内にあるデータのうちの1つを後で使います。)
最悪「data」フォルダごと元に戻せばOKなので、大切に保管しておきましょう。
「data」フォルダ内のデータを削除する
「data」フォルダを丸ごと何処かにバックアップしたら、続いて「data」フォルダ内のデータを削除します。
ここで、自分が作成・使用しているデータベース以外のデータを全て削除します。
今回の例だと「wpdb_01」がWordPress用に自分で作成、使用しているデータベースに当たります。なのでこれを残して、その他のデータを全て削除します。
つまりこの時「data」フォルダ内には「wpdb_01」というフォルダ1つになります。
「backup」フォルダ内の全データを「data」フォルダにコピーする
次に、/xampp/mysql/内の「backup」というフォルダの中にある全ファイルを「data」フォルダ内にコピーします。
「backup」フォルダ内の全ファイルを...
「data」フォルダ内にコピーしました。
避難した「data」フォルダから「ibdata1」を持ってくる
最後に、避難しておいた元の「data」フォルダ内にある「ibdata1」というファイルをXAMPP内の「data」フォルダに持ってきます。
元々の「data」フォルダ内から「ibdata1」というのをコピーして...
「/xampp/mysql/data」の中に「ibdata1」をコピー(上書き保存)します。
作業は以上です。ここで手順をもう1度振り返っておきます。
- 既存の「data」をどこかに避ける
- 「data」内の自分のDB以外の全データを削除
- 「backup」内の全データを「data」にコピー
- 避けた元々の「data」から“ibdata1”をXAMPP内の「data」にコピー
これでXAMPPのバックアップからデータを修復したことになります。
XAMPP(Apache)を再起動して動作確認
XAMPP内の「backup」フォルダに保存されている正常時のデータを、XAMPPで実際に使う「data」フォルダに復元したら早速動作確認してみましょう。
XAMPPのコントロールパネルを開いてApacheを再起動します。
(Apacheの再起動はStartを押してからStopを押せばOKです。)
Apacheを再起動したら、Apacheと問題のMySQLを起動してみます。
「Error: MySQL shutdown unexpectedly.」というエラーが発生することなく、MySQLを普通に起動できました!
MySQLは無事に起動したが…
ここまでの手順で「Error: MySQL shutdown unexpectedly.」を解決し、無事に起動するところまではいけたのですが、WordPressにアクセスしてみるとダメでした...。
データベース接続確立エラーが出ちゃいました...う~ん。
これは推測ですが、MySQLのクラッシュと共にWordPressに使っていたデータベースもクラッシュしたっぽいです。
今回の復旧方法では、自分がWordPress用に作成・使用していたデータベース「wpdb_01」はそのまま使っており、おそらくこれも壊れているのでしょう...。
これに無理やり対処した時の内容は過去記事(↓)にあります。
-
- XAMPPでデータベース接続確立エラーが突然出た...XAMPPの再インストールとデータベースの修復方法。
続きを見る
若干力業ですが、興味がある方はご参照いただければと思います。
まとめ
以上、XAMPP(ザンプ)で「Error: MySQL shutdown unexpectedly.」というエラーが出た時の復旧方法についてでした。
今回は残念ながら肝心の使用中のデータベースを復旧することは出来ませんでしたが、MySQLは普通に起動出来るようになりました!
とはいえデータベース関連の問題なので、この方法で治らないことも多いかも...
何をやってもダメならXAMPPをインストールし直す方が早いかもしれませんね~
最後までお読みいただきありがとうございました・w・