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