MySQL 數(shù)據(jù)庫文件恢復方案
如果以前數(shù)據(jù)庫沒有備份,重裝數(shù)據(jù)庫以后,就算數(shù)據(jù)庫文件在,但是卻無法讀取。進入myadmin里面,會顯示數(shù)據(jù)表,但是數(shù)據(jù)表中數(shù)據(jù)無法讀取。
進入數(shù)據(jù)庫目錄中,一般數(shù)據(jù)庫目錄會有一個Data文件夾,所有數(shù)據(jù)庫文件,會存放在里面。例如寶塔Windows版本中,MySQL5.7版本的數(shù)據(jù)目錄在“D:\BtSoft\mysql\MySQL5.7\data”
進入以后,可以看到很多數(shù)據(jù)。每張數(shù)據(jù)表都是一個文件,表類型是獨享式innodb,由一個frm文件和一個ibd文件組成。
使用工具,可以將文件數(shù)據(jù)給恢復。
網(wǎng)上的方法都太復雜,@zcgonvh 大神給做了一個工具,能一句話恢復數(shù)據(jù)庫。
使用方法
準備數(shù)據(jù)庫
重裝了一個數(shù)據(jù)庫,那么先運行起來,記錄下root賬號和密碼
記錄要恢復的數(shù)據(jù)庫地址,一般來說,在data目錄中,不同的數(shù)據(jù)庫,有一個以這個數(shù)據(jù)庫為名稱的目錄,這個就是目標數(shù)據(jù)庫。
軟件使用
解壓恢復軟件,使用cmd命令,進入軟件根目錄
使用命令行
InnoDBRestore <username> <password> <port> <srcdir> <destDB>
上面的參數(shù)分別為用戶名,密碼,端口,數(shù)據(jù)庫目錄,恢復數(shù)據(jù)庫名稱
你可以這樣寫。其中D:\BtSoft\databak\www_stu_com為我的數(shù)據(jù)庫目錄,改成自己的即可。
InnoDBRestore root 123456 3306 D:\BtSoft\databak\www_stu_com redb
命令執(zhí)行完成后,會在你當前數(shù)據(jù)庫生成一個名為redb的數(shù)據(jù)庫,里面有所有恢復的數(shù)據(jù)。
當然了,如果你只想恢復數(shù)據(jù)表結構,還可以執(zhí)行其他的命令。
可以看看原作者的地址
http://www.zcgonvh.com/post/mysql_innodb_restore.html