mysql如何從ibd文件恢復數據

mysql從ibd文件恢復數據的方法:首先創建一張表,表結構與原表結構一致;然后刪除新建的表空間;接著將待恢復的【.ibd】文件copy到目標數據庫文件夾下,并修改文件權限;最后導入表空間。

mysql如何從ibd文件恢復數據

本教程操作環境:windows7系統、mysql5.6&&mysql5.7版,Dell G3電腦。

相關免費學習推薦:mysql數據庫(視頻)

mysql從ibd文件恢復數據的方法:

1、創建一張表,表結構與原表結構一致:

CREATE?TABLE?<table_name>?...;</table_name>

2、刪除新建的表空間:?

ALTER?TABLE?<table_name>?DISCARD?TABLESPACE;</table_name>

3、將待恢復的.ibd文件copy到目標數據庫文件夾下,并修改文件權限:

cp?<table_name>.ibd?/var/lib/mysql/<database_name> cd?/var/lib/mysql/<database_name> chown?mysql:mysql?<table_name>.ibd</table_name></database_name></database_name></table_name>

4、導入表空間:

ALTER?TABLE?<table_name>?IMPORT?TABLESPACE;</table_name>

也可能出現如下問題:

1、mysql 1808錯誤:

Error?Code:?1808.?Schema?mismatch?(Table?has?ROW_TYPE_DYNAMIC?row?format,?<table_name>.ibd?file?has?ROW_TYPE_COMPACT?row?format.)</table_name>

這是由于mysql 5.6的文件恢復到mysql 5.7版本導致的錯誤,需要在建表語句后面添加ROW_FORMAT=COMPACT,如下所示:

create?table?test(id?int,?name?varchar(10))?row_format=compact;

2、mysql 1812錯誤:

Error?Code:1812.?Tablespace?is?missing?for?table?<table_name></table_name>

copy的ibd文件沒有賦權,請按照第二步執行權限

相關免費學習推薦:mysql數據庫(視頻)

以上就是

? 版權聲明
THE END
喜歡就支持一下吧
點贊11 分享