偶有感觸:遇到這個問題,經過一個下午的排查, 終于解決。
故事情節:我的阿裡雲伺服器突然被黑客攻擊了,整個系統down了。 找客服,他們排查說usr目錄的檔案全部丢失。讓我重新初始化系統盤。初始化之前先生成一個快照。還好生成了快照,讓事情沒有發展為不可挽救的地步。
mysql資料庫資料恢複。
其他的問題都一一解決了。 到了最後, mysql上的資料無論如何都不能正常顯示出來。資料庫不要緊(有備份), 之前的資料才是最要緊的。
這就是本文的目的。 最終如何将mysql資料顯示出來。
--------------------------------------------------------------------
首先:快照生成的磁盤挂載到了/mnt目錄下. mysql的資料庫檔案目錄是/var/lib/mysql. 挂載到/mnt下的原mysql資料庫檔案目錄就是/mnt/var/lib/mysql
想要恢複mysql中的rap_db資料. 并且恢複資料. 我的做法如下:
1. 将rap_db的表結建構立好. 可以在Navicat用戶端生成.
2. 将/var/lib/mysql下的ibdata1檔案删除
3. 将/mnt/var/lib/mysql下的ibdata1拷貝到/var/lib/mysql下.
注: 我們資料庫實際的資料都是放在ibdata1下的, 是以這個檔案很重要
4. 一定要注意修改檔案的權限
chown mysql:mysql ibdata1
-----------------------------------------------------------------------------------
以上是我的做法. 但是,我覺得直接将/mnt/var/lib/mysql檔案夾下的rap_db檔案夾和ibdata1檔案一起拷貝到/var/lib/mysql下應該也能成功.
最後别忘了修改檔案夾和檔案的權限.
這個方法我沒有測試, 上面的方法親測有效.