XAMPPでMySQLが起動しない時にすべき事(参考)

久しぶりにブログを掲載させて頂きます。

書きたい事はいろいろ溜まってはいるのですが、なかなか忙しくて書く暇がありません。。。

今回は、備忘録も兼ねまして、XAMPPを使って、ローカル環境でWebサイトを制作時に発生した事象につきまして復旧した手順について記載させて頂こうと思っております。

あくまで、ここでの記載方法は、弊社で復旧できたパターンですので、もし同じ境遇で実行する際には、自己責任でお願い致します。

XAMPP(ザンプ)

弊社でWebサイトを制作する際は、一度ローカル環境である程度仕上げてから、Webサーバーへアップしお客様にレビューを頂いております。

これは当然ですが、お客様がレビュー頂いている間も平行して開発が推進できること、後は、中途半端な状態でお客様に見て頂きたくないため、このような手法をとっています。

その時に大活躍するのが、XAMPP(ザンプ)。フリーソフトウェアです。

昔は、Apachをインストールして、DB(MySQL)をインストールして・・・と自分で各種フリーソフトウェアをインストールしてセッティングせねばなりませんでした。。。

このXAMPPは、Webサイト実行に必要なフリーソフトウェアをパッケージとしてまとめコントロールパネルを提供しているものです。

そのため、Wordpressに実行可能な環境がすぐ作れてしまいます。

これが一つあるだけでWordPressでWebサイトがいくつでも作れてしまいます。(もちろん常識の範囲で)

Webサイトを制作する際には、非常に重宝します。

MySQLが起動しない

そんな時、事件が起きました。いつも通り、XAMPPのControl Panelから、MySQLの「Start」ボタンを押して起動しようとしたところ起動しないのです。

XAMPPの画面

XAMPPの画面

XAMPPのControl Panelを見ると。

Error MySQL shutdown unexpectedly.

などの文字が。

(事象発生時の画面キャプチャーをとっておかなかったので、画面は平常時の画面です。)

調査開始

Googleで一通り調査を行い、改善しそうな以下の項目をピックアップし実施しました。ただし、いずれも復旧する事はできませんでした。

①ポート競合の可能性

net statコマンドで確認しましたが、競合しているポートはなく、念のため、ポート変更なども実施しましたが復旧はしませんでした。

②異常終了した際のゴミファイルが残っている可能性

MySQLのインストールフォルダのdata配下の以下のファイルを退避(削除)しましたが、これも復旧にはつながりませんでした。

ib_logfile0

ib_logfile1

ibdata1

しかしながら、MySQLのインストールフォルダのdata配下を調査したところ、このフォルダに原因がありそうだという事がつかめ、この後の復旧につながりました。

復旧手順

先に復旧手順を記載させて頂きます。

①mysql\dataフォルダ内をすべてバックアップ

②mysql\data配下について以下を残し、それ以外は削除

[mysql]

[perfomance_schema]

[phpmyadmin]

[test]

[wp@XXXXX]

my.ini

ibdata1

※[ ]はフォルダ名です。

最終的にこのような形になったのは以下の結果からです。

・ibdata1というのは、MySQLにおいてinnoDBと呼ばれるファイルで、実テーブルのデータやインデックスが保存される重要なファイル。削除すると復旧が大変になるため、このファイルは削除してはいけないと判断

・my.iniは設定ファイル

・wp@XXXXXは、それぞれの環境で異なりますが、Wordpressで使われているテーブル構造が格納されている重要なフォルダ。

これらの重要なフォルダとファイルだけ残して、再起動すれば必要なファイルをMySQLが再生成し起動する事ができました。

あくまで実行は自己責任でお願いします。

(バックアップも必ず。)