mysql5.6(.ibd,.frmファイルによる)単一テーブルデータのリカバリ
1604 ワード
前提:データが削除されたテーブルがある.ibdファイルは、データベースのバックアップファイルから解凍できます.そして私の仮想マシンのmysqlは5.6バージョンで、自分のローカルコンピュータのmysql 5を見ました.5のdataにはないようです.ibdファイル
手順:1、Linux仮想マシンに入り、service mysql stopを使用してmysqlサービスを停止し、mysqlのmy.cnfでinnodb_を追加force_recovery=1、mysqlサービスを開始
[mysqld]に次の2行を追加します.
2、service mysql startはデータベースを起動し、データベース接続ツール(私が使用しているnavcatデータベースツール)を使用して仮想マシンに同名同符号化フォーマットのデータベースを新規作成し、回復するテーブルの構造を生成する.sqlファイルは、仮想マシンの同名データベースで実行され、元と同じ構造のテーブルがあります.(テーブル構造は同じでなければなりません)
3、もとの.ibdファイルと元の.frmファイルバインド解除
4、Linuxはmysqlのdataフォルダの下に入り、対応するデータベースフォルダを見つけ、リカバリテーブルが必要なibdファイル(バックアップ以外)を削除する
5、時計をibd(バックアップ)ibdを削除する手順4
6、ibdファイル権限を修正し、alter table tb import tablespaceを実行する.
その後、データベースをリフレッシュし、データを見ると成功しました注意:最初のinnodb_を覚えてください.force_recovery=1その2つの文を変更して、後続の正常な操作が間違っていないようにします.
遭遇したピット:他の資料は3ステップ目以降、mysqlを閉じてibdをコピーしてからmysqlを起動する可能性がありますが、私は試したことがありません(mysqlバージョンに関連している可能性がありますが、具体的な研究はありません)、そして3ステップ目を実行した後にservice mysql startでmysqlを再起動すると、mysqlを起動できません.
参考記事:https://www.cnblogs.com/hankyoon/p/5667884.html
手順:1、Linux仮想マシンに入り、service mysql stopを使用してmysqlサービスを停止し、mysqlのmy.cnfでinnodb_を追加force_recovery=1、mysqlサービスを開始
[root@localhost ~]# service mysql stop -- mysql
[root@localhost mysql]# cd /usr/local/mysql -- mysql
[root@localhost mysql]# vim my.cnf -- my.cnf
[mysqld]に次の2行を追加します.
innodb_force_recovery=1 # 1-6
innodb_purge_thread=0 # 1, 0,
# InnoDB: Waiting for the background threads to start .
2、service mysql startはデータベースを起動し、データベース接続ツール(私が使用しているnavcatデータベースツール)を使用して仮想マシンに同名同符号化フォーマットのデータベースを新規作成し、回復するテーブルの構造を生成する.sqlファイルは、仮想マシンの同名データベースで実行され、元と同じ構造のテーブルがあります.(テーブル構造は同じでなければなりません)
3、もとの.ibdファイルと元の.frmファイルバインド解除
alter table XXX( ) discard tablespace;
4、Linuxはmysqlのdataフォルダの下に入り、対応するデータベースフォルダを見つけ、リカバリテーブルが必要なibdファイル(バックアップ以外)を削除する
5、時計をibd(バックアップ)ibdを削除する手順4
6、ibdファイル権限を修正し、alter table tb import tablespaceを実行する.
[root@localhost ~]# chmod 777 ibd -- ibd
alter table XXX( ) import tablespace;
その後、データベースをリフレッシュし、データを見ると成功しました注意:最初のinnodb_を覚えてください.force_recovery=1その2つの文を変更して、後続の正常な操作が間違っていないようにします.
遭遇したピット:他の資料は3ステップ目以降、mysqlを閉じてibdをコピーしてからmysqlを起動する可能性がありますが、私は試したことがありません(mysqlバージョンに関連している可能性がありますが、具体的な研究はありません)、そして3ステップ目を実行した後にservice mysql startでmysqlを再起動すると、mysqlを起動できません.
参考記事:https://www.cnblogs.com/hankyoon/p/5667884.html