MySQL恢復(fù)中的幾個(gè)問題解決方法
事情是這樣的: 我有個(gè)BuyVM的VPS,結(jié)果人家機(jī)器掛了,然后新開了一個(gè)給我,我要求給我導(dǎo)出備份,人家還真搶救出來大部分?jǐn)?shù)據(jù).然后就是一個(gè)恢復(fù)的過程.Web恢復(fù)沒有任何難度.問題就出在MySQL的恢復(fù)上,記一筆.
1. data目錄完整,但是無法讀出任意一個(gè)表,show tables顯示為空.
起先是懷疑data目錄有問題,嘗試修復(fù),提示不存在表. 經(jīng)光總提醒說是不是用戶組問題.指定用戶組為mysql,解決.
chown -R mysql /var/lib/mysql
2.接著修復(fù),出現(xiàn)
warning : Table is marked as crashed and last repair failed
warning : 1 client is using or hasn't closed the table properly
warning : Size of datafile is: 32453700 Should be: 32376944
error : Wrong bytesec: 0-0-0 at linkstart: 32453660
根據(jù)提示,是data文件owner問題,一看果然是root,給他mysql,解決.
chown -R mysql.mysql /var/lib/mysql
3.運(yùn)行完修復(fù),提示有個(gè)表Error: Incorrect information in file: ‘./aaa/bbb.frm'.
嘗試各種修復(fù)方式均未成功.Google了一下,發(fā)現(xiàn).frm存儲(chǔ)的只是表結(jié)構(gòu).表結(jié)構(gòu)?那嘗試一下用相同表結(jié)構(gòu)的文件覆蓋.刪掉bbb.frm,隨便復(fù)制一個(gè)庫下的ccc.frm,改名為bbb.frm.一看,搞定!
一句話,多備份才是王道,mysql的磁盤轉(zhuǎn)移總會(huì)遇到各種各樣問題.
相關(guān)文章

關(guān)于MYSQL中每個(gè)用戶取1條記錄的三種寫法(group by xxx)

Mysql調(diào)優(yōu)Explain工具詳解及實(shí)戰(zhàn)演練(推薦)