昨天我同事把表裏面的數據給刪除了,關鍵是那傢伙還不知道自己是怎麼刪除的。。。額。。
問題發生以後第一時間找我們的網管要備份數據,
最開始的時候我將.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 ,如果執行命令過程中報錯的話,可以查看報錯日誌。也可登錄管理後臺查看。