mysql從ibd文件恢復(fù)數(shù)據(jù)的方法:首先創(chuàng)建一張表,表結(jié)構(gòu)與原表結(jié)構(gòu)一致;然后刪除新建的表空間;接著將待恢復(fù)的【
.ibd】文件copy到目標(biāo)數(shù)據(jù)庫文件夾下,并修改文件權(quán)限;最后導(dǎo)入表空間。
本教程操作環(huán)境:windows7系統(tǒng)、mysql5.6&&mysql5.7版,該方法適用于所有品牌電腦。
相關(guān)免費(fèi)學(xué)習(xí)推薦:mysql數(shù)據(jù)庫(視頻)
mysql從ibd文件恢復(fù)數(shù)據(jù)的方法:
1、創(chuàng)建一張表,表結(jié)構(gòu)與原表結(jié)構(gòu)一致:
CREATE TABLE <table_name> ...;
2、刪除新建的表空間:
ALTER TABLE <table_name> DISCARD TABLESPACE;
3、將待恢復(fù)的<table_name>.ibd
文件copy到目標(biāo)數(shù)據(jù)庫文件夾下,并修改文件權(quán)限:
cp <table_name>.ibd /var/lib/mysql/<database_name> cd /var/lib/mysql/<database_name> chown mysql:mysql <table_name>.ibd
4、導(dǎo)入表空間:
ALTER TABLE <table_name> IMPORT TABLESPACE;
也可能出現(xiàn)如下問題:
1、mysql 1808錯(cuò)誤:
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的文件恢復(fù)到mysql 5.7版本導(dǎo)致的錯(cuò)誤,需要在建表語句后面添加ROW_FORMAT=COMPACT
,如下所示:
create table test(id int, name varchar(10)) row_format=compact;
2、mysql 1812錯(cuò)誤:
Error Code:1812. Tablespace is missing for table <table_name>
copy的ibd文件沒有賦權(quán),請(qǐng)按照第二步執(zhí)行權(quán)限
相關(guān)免費(fèi)學(xué)習(xí)推薦:php編程(視頻)