方法一,直接在命令模式下修改
1、myisamchk
修復mysql數據庫,還有一個命令:mysqlcheck
mysqlcheck -a -c -o -r –all-databases -uroot -p //這條命令是即可最佳化所有db數據庫。
參數的意義如下:
-a = Analyse given tables.
-c = Check table for errors
-o = Optimise table
-r = Can fix almost anything except unique keys that aren’t unique
如果是在win主機下,修復指定的表,使用:mysqlcheck -o -r 數據庫名稱 -u root -p,在提示輸入密碼的框中,輸入mysql的root管理密碼,mysqlcheck即會對數據庫進行檢測修復
實例
使用 myisamchk 必須暫時停止 MySQL 服務器。例如,我們要檢修 discuz 數據庫。執行以下操作:
# service mysql stop (停止 MySQL );
# myisamchk -r /數據庫文件的絕對路徑/*MYI
# service mysql start
myisamchk 會自動檢查並修復數據表中的索引錯誤。
2、mysqlcheck
使用 mysqlcheck 無需停止 MySQL ,可以進行熱修復。操作步驟如下:# mysqlcheck -r discuz.*
注意,無論是 myisamchk 還是 mysqlcheck ,一般情況下不要使用 -f 強制修復,-f 參數會在遇到一般修復無法成功的時候刪除部分出錯數據以嘗試修復
方法二,利用phpmyadmin快速修改損壞mysql
1、登錄 phpMyAdmin,進入 phpMyAdmin 數據列表頁面;
2、選擇一個數據表前的方框;
3、頁面下方“選中項”下拉選擇“修復表”;