1. 程式人生 > >MySql資料庫通過idb和frm恢復

MySql資料庫通過idb和frm恢復

阿里雲的資料不小心誤刪了3000多條,然後提心吊膽的整夜整夜睡不著(才怪)。然後拿到阿里雲的資料後。

恢復雲資料庫MySQL的備份檔案到自建資料庫,按照阿里雲的要求恢復整個資料庫,要求較多,linux方面又缺少人才,所以按照裡面的要求,將tar.gz檔案在linux下解壓後,下一步就一直執行不下去,所以把解壓出來的那個表的idb和frm檔案從linux拿出來,在window下進行恢復,阿里雲是mysql5.6我的是mysql5.7完美恢復。

注意:不常用mysql命令的注意mysql命令都是要加上“ ;”號的,我不認識這符號叫什麼名字了。

參考:http://www.chriscalender.com/recovering-an-innodb-table-from-only-an-ibd-file/

抄襲

http://bbs.csdn.net/topics/392114182 簡單粗暴,感恩那些愛分享的人們。

 恢復user表 1、先建立和之前user表一樣的表結構。就是執行create table user .... ,執行完,資料庫目錄下就會建立user.ibd檔案(當然還有其他的)

 2、執行 alter table `user` discard tablespace ; 執行完之後,資料庫目錄下的user.ibd檔案就沒了 

 3、把你備份的ibd放到消失的user.ibd檔案那裡。 

                 4、給這個檔案加許可權,所有者mysql ,許可權660(你可以參考別的ibd檔案所有者和許可權設定) (這一步我直接略過,沒管,其它4步是必不可少的)

                 5、執行 alter table `user` import tablespace; 執行完,表資料就可讀了,這時候會丟失一些諸如錶行記錄數等存在系統表裡的資訊,不過那些資訊無所謂。表其實這時候已經可以正常用了。如果不放心,可以匯出sql語句或txt,再建立表匯入。

寫在後面的話:雖然最後還是損失了備份前的幾十條資料,但是99%是給恢復了,資料無價,細心細心再細心