mysql從ibd檔案恢復資料的方法:先建立一張表,表結構與原表結構一致;然後刪除新建的表空間;接著將待恢復的【.ibd】檔案copy到目標資料庫資料夾下,並修改檔案權限;最後匯入表空間。
本教學操作環境:windows7系統、mysql5.6&&mysql5.7版,Dell G3電腦。
相關免費學習推薦:mysql資料庫#(影片)
##mysql從ibd檔案還原資料的方法:
1、建立一張表,表結構與原始表結構一致:
1 | CREATE TABLE <table_name> ...;
|
登入後複製
2、刪除新建的表空間:
1 | ALTER TABLE <table_name> DISCARD TABLESPACE;
|
登入後複製
3、將待恢復的
.ibd檔案copy到目標資料庫資料夾下,並修改檔案權限:
1 2 3 | cp <table_name>.ibd / var /lib/mysql/<database_name>
cd / var /lib/mysql/<database_name>
chown mysql:mysql <table_name>.ibd
|
登入後複製
4、匯入表空間:
1 | ALTER TABLE <table_name> IMPORT TABLESPACE;
|
登入後複製
也可能出現以下問題:
1、mysql 1808錯誤:
1 | Error Code: 1808. Schema mismatch (Table has ROW_TYPE_DYNAMIC row format, <table_name>.ibd file has ROW_TYPE_COMPACT row format.)
|
登入後複製
這是由於mysql 5.6的檔案還原到mysql 5.7版本導致的錯誤,需要在建表語句後面加上
ROW_FORMAT=COMPACT,如下圖:
1 | create table test(id int, name varchar(10)) row_format=compact;
|
登入後複製
2、mysql 1812錯誤:
1 | Error Code:1812. Tablespace is missing for table <table_name>
|
登入後複製
copy的ibd檔案沒有賦權,請依照第二步驟執行權限
相關免費學習推薦:php程式設計(影片)
以上是mysql如何從ibd檔案恢復數據的詳細內容。更多資訊請關注PHP中文網其他相關文章!