Centos7下Mysql通過.frm和.ibd恢復數據緊急措施,幫你拯救你的數據

admin_menu爲數據表

查找到數據庫存檔中的data文件夾下網站所在的目錄,然後找到frm和ibd文件,第一時間備份,然後進行下面的操作!(其他的方法都不行,最後折騰了一個通宵……哎,總結了一下)

第一步,解除空間(在數據庫中的SQL中直接操作),如果失敗那是因爲frm和ibd文件還在,要刪除,最後需要導入的哦,記得備份,然後重啓數據庫,以防萬一把內存也清理下(虛擬機的除外,因爲你沒權限)

ALTER TABLE admin_menu DISCARD TABLESPACE

第二步,創建同表明和字段的數據表(儘量一致,如果沒有出廠表和sql文件的需要獲取表結構,網上很多方法不管用,直接無語,哎,最好是自己有相同的數據表結構,比如以前有過備份什麼的,只是需要表結構,不用擔心數據舊的問題,只要數據表結構),然後執行第一步解除表空間綁定。

第三步,將ibd文件也就是數據內容文件複製並覆蓋新生成的(數據庫data文件下的網站文件夾下)文件就可以

第四步,重新綁定表空間
 

ALTER TABLE admin_menu  IMPORT TABLESPACE

刷新數據庫就可以看到恢復的數據了……

如果沒有,那就重啓數據庫,清理下內存的緩存就可以了

 

留個念想: http://www.manongjc.com/article/6506.html,也不到他的方法能不能用,暫且做個筆記吧,有機會試試,不,這個機會還是不要有了……

補充個5.7的數據庫數據表吧,以備不時之需,留給後來人快速拯救自己的數據……

汗顏,上傳資源還要等待審覈……先放個文件名吧,方便查找:mysql.sql.zip,嗯,終於通過審覈了,直接點擊去下載吧

再來個藍奏雲的鏈接:https://www.lanzous.com/i6ryelc

對了,使用後看到日誌中有個提示:

InnoDB: Table mysql/innodb_table_stats has length mismatch in the column nam

經過複查對比,是因爲mysql數據庫下的innodb_table_stats和innodb_index_stats數據表的`table_name` 列,長度從64 變成了 199,官方居然都沒修復……好吧,自己動手吧,將這兩張表的`table_name`字段長度改爲199,執行,正常了……

下面來一個懶人資源吧,直接替換導入數據庫就可以:

mysql.sql只有數據表結構的.zip

好吧,資源審覈中,通過後加入;好了,可以了,點擊直接下載

先上藍奏雲鏈接:

https://www.lanzous.com/i6stzdg

 

 

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