《Mysql必讀教您修復mysql數據庫的方法》要點:
本文介紹了Mysql必讀教您修復mysql數據庫的方法,希望對您有用。如果有疑問,可以聯系我們。
會mysql的朋友都知道mysql在長時間使用過后數據庫會出現一些問題,這就需要快速修復損壞mysql數據庫以方便我們的工作和學習.下面小編為大家下面介紹兩種快速檢修 MySQL 數據庫的辦法.
本人常用這樣的代碼,直接放到mysql數據庫目錄里面
MYSQL入門
有的時候因為掉電或者其他原因導致數據庫損壞,我們可以使用mysql自帶的mysqlcheck命令來快速修復所有的數據庫或者特定的數據庫;例如
檢查優化并修復所有的數據庫用: MYSQL入門
1.先在運行中輸入CMD,啟動命令行. MYSQL入門
2.進入Mysql的Bin目錄:E:\Program Files\MySQL\MySQL Server 5.0\bin,如果不知道如何進入別的目錄,就要參考網上的資料補習基礎知識了.
常見方式:
運行 E:
運行 CD "E:\Program Files\MySQL\MySQL Server 5.0\bin" MYSQL入門
3.運行:mysqlcheck -A -o -r -uroot -p888888
注意,將888888改成你自己的root用戶暗碼 MYSQL入門
mysql.columns_priv OK
mysql.db OK
mysql.func OK
mysql.help_category OK
mysql.help_keyword OK
mysql.help_relation OK
mysql.help_topic OK
mysql.host OK
mysql.tables_priv OK
mysql.time_zone OK
mysql.time_zone_leap_second OK
mysql.time_zone_name OK
mysql.time_zone_transition OK
mysql.time_zone_transition_type OK
mysql.user OK
......
......
...... MYSQL入門
注意! MYSQL入門
在修復過程中,如果看到有error的提示,表明這個表是壞的,無法修復的,對于含有壞表的的數據庫,您只能刪除它,或停止它,不然會影響整個Mysql的穩定,造成mysql自動停止.(提示"The storage engine for the table doesn't support repair"的表不需要處理) MYSQL入門
如果修復太快看不到結果,可以運行
mysqlcheck -A -o -r -uroot -p888888 >>C:\test.txt MYSQL入門
運行后打開test.txt就可以看到了.?
1、myisamchk
使用 myisamchk 必須暫時停止 MySQL 服務器.例如,我們要檢修 discuz 數據庫.執行以下操作:
MYSQL入門
◆ “tbl_name.frm”被鎖定不能改變. MYSQL入門
◆ 不能找到文件“tbl_name.MYI”(Errcode :### ). MYSQL入門
◆ 從表處理器的得到錯誤###(此時,錯誤135是一個例外). MYSQL入門
◆ 意外的文件結束. MYSQL入門
◆ 記錄文件被毀壞. MYSQL入門
在這些情況下,你必須修復表.表的修復是一項非常困難的工作,很多情況下令人束手無策.然而,有一些常規的知道思想和過程,可以遵循它們來增加修正表的機會.通常,開始是可以用最快的修復辦法,看看能否袖珍故障.如果發現不成功,可以逐步升級到更徹底的但更慢的修復辦法.如果仍舊難以修復,就應該從備份中恢復了.在上一章已經詳細介紹了這一部分內容.MYSQL入門
簡單平安的修復 MYSQL入門
為了修復一個表執行下列步驟:MYSQL入門
◆ 首先,用--recover,-r選項修正表,并且用--quick,-q選項,來只根據索引文件的內容進行恢復.這樣不接觸數據文件來修復索引文件.(-r意味著“恢復模式”) MYSQL入門
myisamchk -r -q tbl_name
isamchk -r -q tbl_name MYSQL入門
◆ 如果問題仍舊存在,則忽略--quick選項,允許修復程序修改數據文件,因為這可能存在問題.下面的命令將從數據文件中刪除不正確的記錄和已被刪除的記錄并重建索引文件:MYSQL入門
myisamchk -r tbl_name
isamchk -r tbl_name MYSQL入門
◆ 如果前面的步驟失敗,使用.平安恢復模式使用一個老的恢復方法,處理常規恢復模式不行的少數情況(但是更慢). MYSQL入門
myisamchk --safe-recover tbl_name
isamchk --safe-recover tbl_name MYSQL入門
困難的修理 MYSQL入門
如果在索引文件的第一個16K塊被破壞,或包含不正確的信息,或如果索引文件丟失,你只應該到這個階段 .在這種情況下,創建一個新的索引文件是必要的.按如下這樣的步驟做: MYSQL入門
◆ 定位到包含崩潰表的數據庫目錄中MYSQL入門
◆ 把數據文件移更平安的地方. MYSQL入門
◆ 使用表描述文件創建新的(空)數據和索引文件:MYSQL入門
shell> mysql db_namemysql> DELETE FROM tbl_name;mysql> quit MYSQL入門
上述語句將重新創建新的空表,并使用表的的描述文件tbl_name.frm重新生成新的數據和索引文件.MYSQL入門
◆ 將老的數據文件拷貝到新創建的數據文件之中.(不要只是將老文件移回新文件之中;你要保留一個副本以防某些東西出錯.) MYSQL入門
◆ 在使用標準的修復辦法.現在myisamchk -r -q應該工作了.(這不應該是一個無限循環).MYSQL入門
如果你擁有表的備份文件,那么一切過程就容易的多.從備份文件中可以恢復表的描述文件,然后在檢查表,有可能還要繼續使用標準的修復辦法,應該糾可以解決問題了.MYSQL入門
非常困難的修復 MYSQL入門
只有描述文件也破壞了,你才應該到達這個階段.這應該從未發生過,因為在表被創建以后,描述文件就不再改變了. MYSQL入門
從一個備份恢復描述文件并且回到階段2.你也可以恢復索引文件并且回到階段1.對于后者,你應該用myisamchk -r啟動. MYSQL入門
如果因為某種原因,數據的備份文件丟失或者沒有備份文件,但是你還記得建立表的CREATE TABLE語句,那么太好了,這樣還是可以恢復索引文件:MYSQL入門
◆ 定位到包含崩潰表的數據庫目錄中MYSQL入門
◆ 把數據文件移更平安的地方.再把數據庫目錄中的對應的目錄刪去..MYSQL入門
◆ 調用mysql并發復CREATE TABLE語句建立該表.MYSQL入門
◆ 退出mysql,將原始的數據文件和索引文件移回到數據庫的目錄中,替換剛才新建的文件.MYSQL入門
◆ 然后回到階段2,修復表.也可以只移回數據文件,這樣保留新的描述和索引文件,然后回到階段1,繼續用標準的辦法修復表.MYSQL入門
維易PHP培訓學院每天發布《Mysql必讀教您修復mysql數據庫的方法》等實戰技能,PHP、MYSQL、LINUX、APP、JS,CSS全面培養人才。