這篇文章主要為大家展示了“MySQL數(shù)據(jù)庫表損壞后如何修復(fù)”,內(nèi)容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領(lǐng)大家一起研究并學(xué)習(xí)一下“MySQL數(shù)據(jù)庫表損壞后如何修復(fù)”這篇文章吧。
1.MyISAM表損壞 用myisamchk命令來修復(fù) myisamchk -r -q 后面跟你的表名.MYI 這個命令是專門修復(fù)myism引擎數(shù)據(jù)庫表的。比如,你的數(shù)據(jù)庫目錄為 /var/lib/mysql/db 其中一個表為 test 那么修復(fù)test表的方法為 myisamchk -r -q /var/lib/mysql/db/test.MYI 如果修復(fù)全部表,用這個命令 myisamchk -r -q /var/lib/mysql/db/*.MYI 2.InnoDB表損壞 InnoDB擁有內(nèi)部恢復(fù)機制,假如數(shù)據(jù)庫崩潰了,InnoDB通過從最后一個時間戳開始運行日志文件,來嘗試修復(fù)數(shù)據(jù)庫。 大多數(shù)情況下會修復(fù)成功,而且整個過程是透明的。 假如InnoDB自行修復(fù)失敗,那么數(shù)據(jù)庫將不能啟動。 在繼續(xù)操作前,先瀏覽下MySQL的日志文件,確定數(shù)據(jù)庫是因為InnoDB表的損壞而崩潰。 有一種方法是更新InnoDB的日志文件計數(shù)器以跳過引起崩潰的查詢,這種情況下,將造成數(shù)據(jù)的不一致性而且會經(jīng)常使主從復(fù)制中斷。 一旦確定MySQL因為InnoDB表損壞無法啟動時,就可以按照以下5步進行修復(fù): 1.編輯/etc/my.cnf文件,加入如下行: innodb_force_recovery = 4 2.這時就可以重新啟動數(shù)據(jù)庫了,在innodb_force_recovery配置的作用,所有的插入與更新操作將被忽略; 3.導(dǎo)出所有的數(shù)據(jù)表; 4.關(guān)閉數(shù)據(jù)庫并刪除所有數(shù)據(jù)表文件及目錄,再運行 mysql_install_db來創(chuàng)建MySQL默認數(shù)據(jù)表; 5.在/etc/my.cnf中刪除innodb_force_recovery這一行,再啟動MySQL(這時MySQL正常啟動); 6.從第3步備份的文件中恢復(fù)所有的數(shù)據(jù)。 innodb_force_recovery可以設(shè)置為1-6,大的數(shù)字包含前面所有數(shù)字的影響。當(dāng)設(shè)置參數(shù)值大于0后,可以對表進行select,create,drop操作,但insert,update或者delete這類操作是不允許的。
1(SRV_FORCE_IGNORE_CORRUPT):忽略檢查到的corrupt頁。 2(SRV_FORCE_NO_BACKGROUND):阻止主線程的運行,如主線程需要執(zhí)行full purge操作,會導(dǎo)致crash。 3(SRV_FORCE_NO_TRX_UNDO):不執(zhí)行事務(wù)回滾操作。 4(SRV_FORCE_NO_IBUF_MERGE):不執(zhí)行插入緩沖的合并操作。 5(SRV_FORCE_NO_UNDO_LOG_SCAN):不查看重做日志,InnoDB存儲引擎會將未提交的事務(wù)視為已提交。 6(SRV_FORCE_NO_LOG_REDO):不執(zhí)行前滾的操作。
以上是“MySQL數(shù)據(jù)庫表損壞后如何修復(fù)”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識,歡迎關(guān)注創(chuàng)新互聯(lián)-成都網(wǎng)站建設(shè)公司行業(yè)資訊頻道!
本文標(biāo)題:MySQL數(shù)據(jù)庫表損壞后如何修復(fù)-創(chuàng)新互聯(lián)
轉(zhuǎn)載來源:http://www.rwnh.cn/article18/ddohdp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供App設(shè)計、網(wǎng)站制作、微信小程序、網(wǎng)站維護、關(guān)鍵詞優(yōu)化、標(biāo)簽優(yōu)化
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容