top
Loading...
MYSQL數據庫重裝后恢復的問題雜談

昨天晚上要睡覺的時候發現mysql數據庫出問題了!郁悶,重起服務器也不管用,只有重裝了!

于是就停止mysql服務,將mysql文件夾改名,然后重新安裝全新的mysql程序!

安裝完成之后,將data目錄中的文件夾全部拷貝到新的目錄中!登錄phpmyadmin發現用戶沒有了,數據庫都在,檢查后發現/data/mysql目錄我沒有拷入,于是將這個文件夾覆蓋,再刷新,可以了!用戶也有了!

登錄了2個網站發現沒有問題!于是就睡覺了!

今天早晨有人告訴我服務器出問題了!原來是有的網站出現了InnoDB錯誤,癥狀是找不到什么.ibd的表文件,這個以前我遇到過!但是沒有解決!后來就試驗各種方法!發現出現錯誤的mysql數據庫中的文件夾中只有.frm文件,丟了好多文件!察看官方翻譯的InnoDB說明文檔說是要將這些文件刪除,但是將這些文件刪除了那個文件夾中就沒有數據了!不可行!

然后又用搜索引擎搜索,也沒有找到答案!

之后用phpmyadmin2.62和2.31備份,不能備!說是這個表正在使用中!

沒辦法了!

后來突然間想起升級discuz4.0的時候有個備份方法!

于是登錄dz官方網站找到了那篇文章!開始按照上面說的做!將數據備份出來,使用的是

mysqldump -uroot -p databse > test.sql

這條語句!

備份出來之后,使用工具恢復,說是沒有sql與區查詢,還是不能恢復,用文本察看器打開,發現都是亂碼!但是文件的大小沒有問題,說明所有的數據都備份出來了!

后來想起pw3.01轉到dz4.0時候出現亂碼,是轉換了編碼才解決的!于是就將所有的數據恢復好另外一個新建的數據庫中,恢復過程中使用utf8編碼!使用的是下面的語句!

mysql -uroot -p --default-character-set=utf8 -f test

將論壇的數據庫連接修改成新的數據庫!登錄論壇,發現沒有問題了!

至此,解決完畢!

總結:出現了InnoDB 錯誤數據庫就不能編輯、修復、刪除了!只有先stop mysql服務,然后將舊的備份data中的所有文件拷貝到新安裝的mysql服務文件夾中,然后start mysql服務,是用mysqldump命令將mysql數據庫備份出來!然后再stop mysql服務,將新的data文件夾覆蓋回來!然后start mysql服務,新建一個數據庫,然后使用

mysql -uroot -p --default-character-set=utf8 -f test

語句將數據庫恢復!注意編碼問題!

作者:http://www.zhujiangroad.com
來源:http://www.zhujiangroad.com
北斗有巢氏 有巢氏北斗