9

共有 Web ホストのサーバーに置かれていた非常に重要なデータベースが破損したため、バックアップを取りませんでした。この表には、非常に重要な電子メール アドレスの大きなリストが含まれています。テーブルのリストを取得できますが、Navicat または phpMyAdmin でいずれかのテーブルを開くと、次のエラーが発生します。

ファイルの誤った情報: './the-table-name.frm'

データベースに関連付けられた .frm ファイルを Web ホストから取得できました。

そこには他のデータもありますが、少なくともメールアドレスを取得できれば問題ありません。

このデータベースを回復するにはどうすればよいですか? これを修正するために誰かにお金を払っても構わないと思っています。

4

3 に答える 3

16

これはサーバーフォールトに属します。

まず、.FRM ファイルには「データ」が含まれていません。それらは単にテーブルの定義です。

次のすべてに該当する場合:

  • テーブルは MyISAM ストレージ エンジンを使用しています
  • CREATE TABLEテーブルを再作成するために必要なステートメントを知っている

次に、次の操作を行います。

  1. MySQL を停止する
  2. table_name.frm、table_name.MYI、table_name.MYD ファイルをバックアップします。
  3. それらを mysql データ ディレクトリ (通常は /var/lib/mysql) から削除します。
  4. MySQL を起動
  5. テーブルを再度作成します
  6. MySQL を停止する
  7. .MYD および .MYI ファイルを datadir にコピーして、そこにあるファイルを置き換えます。
  8. MySQL を起動
  9. ???
  10. 利益
于 2010-02-22T21:22:10.803 に答える
0

同様の問題がありました.MySQL InnoDBエンジンがオフになっていることがわかりました(phpMyAdminで確認できました.bashプロは他の方法でそれを行う方法を教えてくれました)。私の場合、MySQL を再起動するだけの簡単なものでしたが、何か変更があった場合は設定を確認することをお勧めします。

于 2011-04-09T15:52:16.140 に答える