4

重複の可能性:
.myd、.myi、.frm ファイルから mysql db を復元する方法

ここでこの質問を見たことがありますが、正直に言うと、投稿されたソリューションを理解できません。いくつかの問題に続いてWindows Vistaを再インストールしたところ、Mysqlの古いインストール用に「データ」フォルダー全体のコピーを作成しました。新しくインストールされた MySQL の元のバージョンは 5.0.85 でした。

phpMyAdmin の元のバージョンは 3.2.1 でしたが、最新バージョンの 3.5.3 がインストールされました。問題は、テーブルとインデックス ファイルであると思われる MYI および MYD ファイルをいくつか失ったことです。すべての .FRM ファイルと ibdata1 ファイル (ib_logfile0 および ib_logfile2) が存在します。

「テーブルレベル権限の割り当て」ドロップダウンメニューなどの一部の画面でテーブルがphpMyAdminに表示されるため、まだそこにあるように見えますが、aDBのすべてのテーブルを示す左側の列には表示されません。それらは回復可能ですか、それとも永久に失われますか?? 初心者が理解できるように、十分に詳細に助けていただければ幸いです。以前に WAMP をセットアップしたことがありますが、この問題に遭遇したことはありません。

事前に感謝します...

4

1 に答える 1

8

.frmファイルには、テーブルの構造に関するメタデータが含まれているだけです。それらにはあなたのデータは含まれていません。

MyISAM テーブルの場合、 .MYDファイルは基本的にテーブルです (メタデータまたはインデックスを除く)。それがなくなった場合、データは失われます。「空の」ファイルを生成して最初からやり直す方法はおそらくありますが、そうです。それらがなければ、データはありません。

.MYIファイルにはインデックスが含まれています。それらは再生成できますが、データなしではできません。

ただし、テーブルが InnoDB テーブルである場合は、うまくいく可能性があります。InnoDB テーブルの.MYDまたははありません。.MYIそれらにあったはずのデータは、代わりにibdata1. .frm(mysqld を停止した後) ファイルとib*ファイルを正しい位置に忍び込ませ、再起動時に mysqld にそれらを認識させることができる場合があります。

もちろん、既にInnoDB データ ファイルある場合、これは機能しません。むしろ、ある場合、既存の InnoDB テーブルが失われることになります。ただし、その場合、ファイルを別のディレクトリに置き、そのディレクトリを指す mysqld インスタンスを開始できます。テーブルを SQL として作成するだけで十分なmysqldumpので、それを新しいデータベースにインポートできます。

于 2012-11-12T23:42:12.530 に答える