PMA でデータベースを復元しようとしていますが、アクセスできるのは frm ファイルと ibd ファイルのみです。必要な ib_log ファイルにはアクセスできません。
データベース データを回復できない可能性があることはわかっていますが、frm ファイルからテーブルの構造を回復することは可能ですか?
P粉0435663142023-10-20 00:08:59
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 を使用できません。サーバー上のデータ ディレクトリへのスーパーユーザー アクセスが必要です。P粉5692054782023-10-20 00:04:57
.frm
および .idb
ファイルからのみテーブルを復元しました。
テーブルのスキーマがすでにわかっている場合は、この手順をスキップできます。
まず、MySQL ユーティリティをインストールします。
これで、コマンド プロンプト (cmd) で mysqlfrm
コマンドを使用できるようになります。
2 番目に、mysqlfrm
コマンドを使用して、.frm
ファイルから SQL クエリを取得します。
ああああ
テーブルの作成
古いデータがまだ存在する場合は、最初に対応するデータベースとテーブルを削除する必要がある場合があります。データ ファイルのバックアップがあることを確認してください。
###データ復旧###次のクエリを実行して新しいテーブル データを削除します:
リーリーファイルと (新しい空の)
.idb ファイル間の接続が削除されます。また、フォルダー内の .idb
ファイルも削除します。
次に、古い .idb
ファイルを新しいフォルダーに置きます。例:
mysql
ユーザーが
ファイルを読み取れることを確認します。たとえば、フォルダー内で chown -R mysql:mysql *.ibd を実行します。
次のクエリを実行して古いデータをインポートします:
リーリー
これにより、
ファイルからデータがインポートされ、データが復元されます。