Mysql通過ibd文件恢復數據的詳細步驟

恢復步驟

1、創建數據庫(隨意創建)

2、創建數據表(備註:表結構要和要恢復的表結構一致,row_format要和ibd文件的row_format一致,否則,會提示兩者不一致。 當前row_format=dynamic)

3、表的屬性查看

我們使用:show table status like ‘matlab’\G,查看表的屬性

備註:創建表時候的row_format和表屬性的不一致,基於innodb是,要把row_format設置成dynamic時,需要修改mysql的全局配置,直接在myql命令中修改:set global innodb_file_format=Barracuda;

4、表錯誤信息查看 show warnings

5、說明

我們在恢復表的時候,要保證row_format和ibd文件的一致,如果ibd文件是compact的話,需要建表的時候,設置成row_format=compact,在恢復的時候,自行解決,從第6步開始,重點說明如何去恢復。

6、恢復第一步:移除表空間

 **alter table matlab DISCARD TABLESPACE;**

7、恢復第二步:將備份的ibd文件,放到mysql->data->創建的數據庫名稱->,將ibd拷貝到此目錄下,如下圖所示
具體路徑查看

-- 使用sql查詢數據目錄
**show global variables like '%datadir%';**

8、恢復第三步:重新導入表空間

 **alter table matlab IMPORT TABLESPACE;**

9、當執行到上一步完成後,我們發現數據庫中的數據已經完全恢復過來瞭

10、數據表的結構一定要和恢復前的數據表結構一致,否則恢復失敗,導致mysql進程重啟,詳細情況需要查看mysql的error日志進行分析,另外,mysql的CE工具提供瞭便捷的mysql參數配置修改功能

補充:Innodb與MyISAM存儲文件的區別

Innodb存儲文件分為:.frm,.idb
    .frm:存儲表定義
    .ibd:存儲數據和索引
MyISAM存儲文件分為:.frm,.myd,.myi
    .frm:存儲表定義
    .myd:存儲數據
    .myi:存儲索引

總結

到此這篇關於Mysql通過ibd文件恢復數據的文章就介紹到這瞭,更多相關Mysql ibd文件恢復數據內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!

推薦閱讀: