以下的文章主要介紹的是MySQL錯誤,即,Incorrect file format/數據表“使用中”的解決方案,以下就是文章對其具體內容的主要描述,希望會給你帶來一些幫助在此方面。願在你以後的學習中以起到拋磚引玉的作用。
硬盤出錯,windows開機自動執行磁盤查檢。開始工作時,web程序運行異常,有這樣的信息:
130: Incorrect file format xx_messages’
看來是MySQL表損壞了,到phpmyadmin裡,這個表顯示狀態為“使用中”,工具欄裡的“操作”裡,找“修復表”,但奇怪的是沒有這一項,只有“強制更新表 (“FLUSH”) ”看來問題還是比較嚴重的),點了照例提示MySQL錯誤: Incorrect file format ‘xx_messages’
google一下,有不少人也遇到這樣問題,解決方法當然都是說修復表之類的,那直接運行SQL命令。在phpmyadmin裡運行:
- check table xx_messages;
- analyze table xx_messages;
- repair table xx_messages;
結果還是沒用,照例“ Incorrect file format ‘xx_messages’”
看來網上的說法不見得能解決我的問題,求人不如求已,自己解決。
到mysql數據庫目錄時,看看文件是不是正常,要不然就把以前備份的導進去。
該表相關的三個文件,xx_messages.MYI 的文件大小是0,看來是索引壞了,從以前的備份文件裡,直接拷出來,替換這個0大小文件其它兩個文件沒有替換),phpmyadmin提示MySQL錯誤
- #1194 – Table ‘bne9pb_messages’ is marked as crashed and should be repaired
肯定是索引問題,昨天對表結構做過修改,用老的索引文件,肯定不對的,那就修復表:
- repair table bne9pb_messages;
問題解決。不過所有數據都沒有了,成了空表,這無所謂,反正是本地開發用的;如果是服務器上的表的話,一定要事先備份的,不然真的欲哭無淚的。
這次只是索引文件壞了,如果數據文件都壞了,那就只能根據舊數據備份重新改動了。
僅僅索引壞掉,其實運行
- REPAIR TABLE xx_messages USE_FRM;
應該就可以解決了;這樣應該還可以保留原有數據不丟失,不過沒有試,這次沒做壞文件備份,沒法再搗騰搗騰。
以上的相關內容就是對MySQL錯誤:Incorrect file format/數據表“使用中”解決手記的介紹,望你能有所收獲。