PMA でデータベースを復元しようとしていますが、アクセスできるのは frm ファイルと ibd ファイルのみです。必要な ib_log ファイルにはアクセスできません。
データベース データを回復できない可能性があることはわかっていますが、frm ファイルからテーブルの構造を回復することは可能ですか?
InnoDB ではデータ リカバリに ib_log ファイルが必要ですが、データ ディクショナリと、場合によってはテーブルの保留中のデータが含まれる ibdata1 ファイルも必要です。
データ ディクショナリは、テーブルの構造を記録し、テーブル ID をテーブル データを含む物理 .ibd ファイルと照合する繰り返しシステムです。
InnoDB データ ディクショナリなしでは .ibd ファイルを移動することはできません。データ ディクショナリは .ibd ファイル内で見つかったテーブル ID と一致する必要があります。 .ibd ファイルを再添付してデータを回復することはできますが、このプロセスは気の弱い人向けではありません。 http://www.chriscalender.com/ibd ファイルのみからの innodb テーブルの回復/ を参照してください。
http://www.percona.com/blog/2008/12/17/recovering-create-table-statement-from-frm-file/" percona.com/blog/2008/12/17/recovering- frm ファイルからテーブル ステートメントを作成/
.frm および .idb ファイルからのみテーブルを復元しました。
.frm
.idb
テーブルのスキーマがすでにわかっている場合は、この手順をスキップできます。
まず、MySQL ユーティリティをインストールします。 これで、コマンド プロンプト (cmd) で mysqlfrm コマンドを使用できるようになります。
mysqlfrm
2 番目に、mysqlfrm コマンドを使用して、.frm ファイルから SQL クエリを取得します。 ああああ
テーブルの作成
古いデータがまだ存在する場合は、最初に対応するデータベースとテーブルを削除する必要がある場合があります。データ ファイルのバックアップがあることを確認してください。
次のクエリを実行して新しいテーブル データを削除します:
ファイルと (新しい空の)
ファイル間の接続が削除されます。また、フォルダー内の .idb ファイルも削除します。 次に、古い .idb ファイルを新しいフォルダーに置きます。例:
mysql ユーザーが
mysql
ファイルを読み取れることを確認します。たとえば、フォルダー内で chown -R mysql:mysql *.ibd を実行します。 次のクエリを実行して古いデータをインポートします: リーリー これにより、
を実行します。
次のクエリを実行して古いデータをインポートします:
ファイルからデータがインポートされ、データが復元されます。
InnoDB ではデータ リカバリに ib_log ファイルが必要ですが、データ ディクショナリと、場合によってはテーブルの保留中のデータが含まれる ibdata1 ファイルも必要です。
データ ディクショナリは、テーブルの構造を記録し、テーブル ID をテーブル データを含む物理 .ibd ファイルと照合する繰り返しシステムです。
InnoDB データ ディクショナリなしでは .ibd ファイルを移動することはできません。データ ディクショナリは .ibd ファイル内で見つかったテーブル ID と一致する必要があります。 .ibd ファイルを再添付してデータを回復することはできますが、このプロセスは気の弱い人向けではありません。 http://www.chriscalender.com/ibd ファイルのみからの innodb テーブルの回復/ を参照してください。
.frm ファイルを使用して、いくつかのファイルトリックを使用して構造を復元することはできますが、そもそもそれらを InnoDB テーブルとして作成することはできません。 .frm ファイルを MyISAM テーブルに復元する方法を説明したブログは次のとおりです。http://www.percona.com/blog/2008/12/17/recovering-create-table-statement-from-frm-file/" percona.com/blog/2008/12/17/recovering- frm ファイルからテーブル ステートメントを作成/
これには PMA を使用できません。サーバー上のデータ ディレクトリへのスーパーユーザー アクセスが必要です。.frm
および.idb
ファイルからのみテーブルを復元しました。テーブルの作成に使用される SQL クエリを取得します
テーブルのスキーマがすでにわかっている場合は、この手順をスキップできます。
まず、MySQL ユーティリティをインストールします。 これで、コマンド プロンプト (cmd) で
mysqlfrm
コマンドを使用できるようになります。2 番目に、
mysqlfrm
コマンドを使用して、.frm
ファイルから SQL クエリを取得します。 ああああテーブルの作成
上記の SQL クエリを使用してテーブルを作成します。
古いデータがまだ存在する場合は、最初に対応するデータベースとテーブルを削除する必要がある場合があります。データ ファイルのバックアップがあることを確認してください。
###データ復旧###次のクエリを実行して新しいテーブル データを削除します:
リーリーこれにより、新しい
.frmファイルと (新しい空の)
.idbファイル間の接続が削除されます。また、フォルダー内の
次に、古い
リーリー.idb
ファイルも削除します。.idb
ファイルを新しいフォルダーに置きます。例:mysql
ユーザーがファイルを読み取れることを確認します。たとえば、フォルダー内で chown -R mysql:mysql *.ibd
.idbを実行します。
次のクエリを実行して古いデータをインポートします:
リーリー これにより、ファイルからデータがインポートされ、データが復元されます。