ことれいのもり

XAMPPでibdata1ファイルを紛失したときの対処法(MySQL起動エラー)

はじめに

以前の記事で、「XAMPPでMySQLのStartボタンを押しても起動しないエラーの復旧方法」を紹介しました。

この復旧で重要になるのがibdata1ファイルです。

もしこのibdata1ファイルを上書きや移動で失ってしまうと、MySQLの起動が難しくなります。


この記事では、ibdata1ファイルを紛失した場合の対処法をまとめます。

ほぼ自分用の備忘録ですが、同じ状況の人の参考になれば幸いです。

環境・前提

環境

  • XAMPPのphpMyAdmin
  • XserverのphpMyAdmin

    ※両者で「同じデータベース構造」があることが前提条件です。


参考記事:XAMPPでMySQLのStartボタンを押しても起動しないエラーの復旧方法

対処法

結論から言うと、ibdata1ファイルを紛失した場合、元データを完全に復旧することはできません。

ただし「同じ構造を持つデータベースが存在する場合」は、空のテーブルを移してエラーを回避し、MySQLを再び起動出来るようになります。

条件

  • 同じ構造のデータベースがあること


私の場合は、テスト環境のXAMPPと本番環境のXserverで、全く同じテーブル構造を使用していました。

そのため、既に存在するデータベースから構造だけエクスポートし、エラーが出ている側のデータベースにインポートします。

方法

1.中身が残っているデータベース側で、テーブルデータを空にしてSQLファイルをエクスポートする

phpMyAdminでデータなしのテーブルをエクスポートする方法


2.ibdata1ファイルを紛失したデータベース側で、そのSQLファイルをインポートする

phpMyAdminでエクスポートしたSQLファイルをインポートする方法


これでデータベースの中身は空ですが、MySQLの起動エラーは解消できます。

おわりに

ibdata1ファイルを紛失した場合の対処法を紹介しました。

紛失しないのが一番ですが、最終手段として使うことができます。

一番重要なことは、大事なファイルをむやみに移動させないことです。

状況が特殊ですが、同じ状況の人の参考になれば幸いです。