事情是這樣的: 我有個BuyVM的VPS,結果人家機器掛了,然後新開了一個給我,我要求給我導出備份,人家還真搶救出來大部分數據.然後就是一個恢復的過程.Web恢復沒有任何難度.問題就出在MySQL的恢復上,記一筆.
1. data目錄完整,但是無法讀出任意一個表,show tables顯示為空.
起先是懷疑data目錄有問題,嘗試修復,提示不存在表. 經光總提醒說是不是用戶組問題.指定用戶組為mysql,解決.
復制代碼 代碼如下:
chown -R mysql /var/lib/mysql
2.接著修復,出現
復制代碼 代碼如下:
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
根據提示,是data文件owner問題,一看果然是root,給他mysql,解決.
復制代碼 代碼如下:
chown -R mysql.mysql /var/lib/mysql
3.運行完修復,提示有個表Error: Incorrect information in file: ‘./aaa/bbb.frm'.
嘗試各種修復方式均未成功.Google了一下,發現.frm存儲的只是表結構.表結構?那嘗試一下用相同表結構的文件覆蓋.刪掉bbb.frm,隨便復制一個庫下的ccc.frm,改名為bbb.frm.一看,搞定!
一句話,多備份才是王道,mysql的磁盤轉移總會遇到各種各樣問題.