如何根據.frm .ibd 文件恢復MySql 表中的數據

昨天我同事把表裏面的數據給刪除了,關鍵是那傢伙還不知道自己是怎麼刪除的。。。額。。

問題發生以後第一時間找我們的網管要備份數據,

最開始的時候我將.frm 和.ibd文件替換到數據庫裏面以後,數據沒有顯示,然後我就試了下面這種方式,是可行的。

步驟

此操作比較笨拙,可能有更簡單的,但是使用下來我發現我下面這個步驟能實現效果。

恢復數據的過程我們可以拿測試開刀,不要拿生產環境,因爲要開啓關閉MySQL服務。

(1)首先我們需要準備一個數據庫,我這邊MySQL版本是8.0.12.

 

(2)新建一個test 數據庫。

(3)新建一個需要恢復的表。

 

(4)接下來需要將原來表的frm 和ibd文件解除綁定

alter table wiki_page discard tablespace;

(5)關閉MySQL 服務

可以看到test這個數據庫裏面沒有文件,因爲我們剛剛執行了discard命令。

 

將我們備份的文件在數據庫裏面替換掉(copy)

 

(6)啓動服務

(7)將複製過來的wiki_page.ibd文件與wiki_page.frm文件發生聯繫

(8)可以看到數據恢復過來了,至此就大功告成了。

總結:

1,新創建的表結構與備份文件中的表結構需要一致。

2. 小編是windows ,如果執行命令過程中報錯的話,可以查看報錯日誌。也可登錄管理後臺查看。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章