首頁  >  文章  >  資料庫  >  Mysql怎麼透過ibd檔恢復數據

Mysql怎麼透過ibd檔恢復數據

WBOY
WBOY轉載
2023-06-02 11:01:243175瀏覽

復原步驟

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:儲存資料
 . :儲存索引

以上是Mysql怎麼透過ibd檔恢復數據的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:yisu.com。如有侵權,請聯絡admin@php.cn刪除