久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

如何利用myisamchk和mysqlcheck快速修復損壞的MySQL數據庫

186次閱讀
沒有評論

共計 1167 個字符,預計需要花費 3 分鐘才能閱讀完成。

如何利用 myisamchk 和 mysqlcheck 快速修復損壞的 MySQL 數據庫

由于服務器的數據庫硬盤空間滿了,由于大量寫入數據失敗導致了出現“Duplicate entry ” for key ‘username’”的錯誤。

如果,出現這樣的 mysql 數據庫錯誤很可能是 mysql 數據庫索引 出了問題。那么,什么是 mysql 數據庫索引?

分析:索引如果是 primary unique 這兩兩種,那么數據表的數據對應的這個字段就必須保證其每條記錄的唯一性。否則就會產生這個錯誤。

一般發生在對數據庫寫操作的時候,例如 Discuz!4.1 論壇程序要求所有會員的用戶名 username 必須唯一,即 username 的索引是 unique,這時如果強行往 cdb_members 表里插入一個已有的 username 的記錄就會發上這個錯誤,或者將一條記錄的 username 更新為已有的一個 username。

比如某網友的 dedecms 網站出問題了,訪問一看,果然全屏報錯,檢查 mysql 日志,錯誤信息為:

Table .dedecmsv4dede_archives is marked as crashed and should be repaired

提示說 cms 的文章表 dede_archives 被標記有問題,需要修復。

于是趕快恢復歷史數據,上網查找原因。最終將問題解決。

解決方法如下:

找到 mysql 的安裝目錄的 bin/myisamchk 工具,在命令行中輸入:

myisamchk -c -r ../data/dedecmsv4/dede_archives.MYI

然后 myisamchk 工具會幫助你恢復數據表的索引。重新啟動 mysql,問題解決。

那么,修復 mysql 數據庫一般可以 myisamchk 工具或者 mysqlcheck 工具用這二種方法:

1、myisamchk 工具

使用 myisamchk 必須暫時停止 MySQL 服務器。例如,我們要檢修 discuz 數據庫。執行以下操作:

# service mysql stop (停止 MySQL);

# myisamchk -r / 數據庫文件的絕對路徑 /*MYI

# service mysql start

myisamchk 會自動檢查并修復數據表中的索引錯誤。

2、mysqlcheck 工具

使用 mysqlcheck 無需停止 MySQL,可以進行熱修復。操作步驟如下:

# mysqlcheck -r discuz.*

# service mysql stop (停止 MySQL);

# myisamchk -r / 數據庫文件的絕對路徑 /*MYI

# service mysql start

myisamchk 會自動檢查并修復數據表中的索引錯誤。

注意:無論是 myisamchk 還是 mysqlcheck,一般情況下不要使用 -f 強制修復,-f 參數會在遇到一般修復無法成功的時候刪除部分出錯數據以嘗試修復。所以,不到萬不得已不要使用 -f。

正文完
 
丸趣
版權聲明:本站原創文章,由 丸趣 2023-06-15發表,共計1167字。
轉載說明:除特殊說明外本站除技術相關以外文章皆由網絡搜集發布,轉載請注明出處。
評論(沒有評論)
主站蜘蛛池模板: 监利县| 南岸区| 芷江| 滨海县| 景谷| 建宁县| 开封县| 石河子市| 应用必备| 德昌县| 获嘉县| 三台县| 金坛市| 北川| 十堰市| 伊宁市| 全椒县| 明星| 武穴市| 沾益县| 朝阳区| 江源县| 乳山市| 楚雄市| 平陆县| 临泉县| 宁德市| 忻州市| 牙克石市| 满洲里市| 鄂托克旗| 山东| 通江县| 江西省| 乌拉特前旗| 揭阳市| 垦利县| 印江| 洪洞县| 西充县| 长海县|