HOME >> Tips >> MySQL

Windows 環境の MySQL のデータベースを「.frm」「.ibd」ファイルから復旧する方法

2017/5/2
文書番号:20733


Windows 環境の MySQL データベースを「xxx.frm」と「xxx.ibd」ファイルから復旧する手順です。

以下の手順は今回は成功しましたが必ずしもうまくいかにかもしれません。
ファイル名を変更したりファイルを削除する手順の前には必ずバックアップを取るようにしてください。


MySQL データベースは以下のディレクトリにあります。

C:\programdata\MySQL\MySQL Server 5.7\Data
※バージョンによってバージョン番号の部分が異なると思います。

このフォルダ内にある「ibdata1」「ib_logfile0」「ib_logfile1」という3つのファイルとデータベース名のフォルダを丸ごと置き換える必要があります。


※復元する元のデータベースと復元先のデータベースのバージョンはできるだけ同じものを準備すると問題は少ないと思います。

【対応方法】

    まず、MySQL Server のサービスを停止します。

  1. キーボードの Windwos ロゴキーを押しながら「R」キーを押します。

    クリックで拡大

  2. 「ファイル名を指定して実行」ダイアログが起動します。
    「services.msc」と入力して「OK」をクリックします。

    クリックで拡大

  3. 「サービス」が起動します。
    「MySQL57」という項目を探します。(最後の数字はインストールしているバージョンによって異なります。)

    「MySQL57」を右クリックして「停止」をクリックします。

    クリックで拡大



  4. MysSQL サービスが停止したらデータベースファイルをコピーします。

  5. キーボードの Windwos ロゴキーを押しながら「R」キーを押します。

    クリックで拡大

  6. 「ファイル名を指定して実行」ダイアログが起動します。
    「C:\ProgramData」と入力して「OK」をクリックします。

    「C:\ProgramData」フォルダーは隠しフォルダーなので通常はエクスプローラーで表示されません。
    隠しフォルダーを表示するようにしてもいいですが、今回だけの場合はこの方法の方が早いかもしれません。

    クリックで拡大

  7. 「C:\ProgramData」フォルダーが開いたら、「MySQL」「MySQL Server 5.7」「Data」と、順にフォルダーを開いていきます。

    クリックで拡大

  8. このフォルダーで、「ibdata1」「ib_logfile0」「ib_logfile1」という3つのファイルとデータベース名のフォルダを丸ごと置き換えます。
    ※元のファイルは念のため他へコピーするなどバックアップしておいてください。

    クリックで拡大

  9. 「サービス」の画面へ戻り、「MySQL57」を右クリックして「開始」をクリックします。
    MySQLサービスが開始したら、データベースが復元されていることを確認します。

    クリックで拡大