MYSQL ERROR 1194 (HY000)

操做系統文件限制大小致使 MYSQL ERROR 1194 (HY000): Table is marked as crashed and should be repaired 問題處理

同事反饋應用在執行查詢某張表時候報ERROR 1194 (HY000): Table is marked as crashed and should be repaired 錯誤mysql

mysql> select * from ims_stat_msg_history where module='basic' and message='0' and createtime>=UNIX_TIMESTAMP('2015-03-04') LIMIT 0, 10;ERROR 1194 (HY000): Table 'ims_stat_msg_history' is marked as crashed and should be repaired

經過網絡搜索得出的大概問題緣由爲索引頁損壞或表出現錯誤,網絡上提供2種解決方案sql

  • 使用myisamchk 命令進行修復 myisamchk -c -r /var/lib/mysql/wx/ims_stat_msg_history.網絡

  • 使用mysql 命令 repair table ims_stat_msg_history 進行修復.測試

經過使用上面兩種解決方案,此問題依然存在,經過覈查表發現表大小恰好爲2G(1073741312/1024/1024)*2spa

-rw-rw----    1 mysql    mysql    1073741312 Mar 04 17:59 ims_stat_msg_history.MYD-rw-rw----    1 mysql    mysql     321451008 Mar 04 18:22 ims_stat_msg_history.MYI-rw-rw----    1 mysql    mysql          8937 Mar 28 2014  ims_stat_msg_history.frm

隨着這條線索覈查操做系統的limit (/etc/security/limits) 發現default有設置fssize 爲2097151 和文件已經達到的大小2G恰好一致,這裏我將此參數改成-1 ,而後從新切換一下用戶環境後重啓mysql 
重啓mysql後,再次執行repair table ims_stat_msg_history進行修復,通過修復後測試,表恢復正常!操作系統

總結:

  • 對於網絡上提供的解決方案,在不十分清楚的狀況下,須要反覆確認操做,最好進行先備份code

  • 對於使用了修復方案仍是存在問題,須要多擴展思路和方向進行解決索引

相關文章
相關標籤/搜索