Table is marked as crashed and should be repaired 解决办法
场景描述:接到虹桥反馈,仓储出库扫描异常,我一看邮件收到错误信息如下:
### Cause: java.sql.SQLException: Table '.\hqprint\sale_scan_detail' is marked as crashed and should be repaired ; uncategorized SQLException for SQL []; SQL state [HY000]; error code [145]; Table '.\hqprint\sale_scan_detail' is marked as crashed and should be repaired; nested exception is java.sql.SQLException: Table '.\hqprint\sale_scan_detail' is marked as crashed and should be repaired
Plain Text
百度了一把,说表里面的索引坏了,一把冷汗啊,连上服务器后一看,TMD 这个表直接不存在了,然后我瞄了一眼磁盘,爆了,磁盘爆了。
删掉一些渣渣后,多出好几十G,然后刷新了一下SQLYOG , 这个表 sale_scan_detail 依然没出来。
依照网上的说法用myisamchk工具恢复
找到mysql的安装目录的bin/myisamchk工具,在cmd命令行中输入:
myisamchk -c -r "D:/MySQL/data/hqpring/sale_scan_detail.MYI"
Plain Text
数据得以恢复,造成上面的原因就是磁盘满了,写数据把表写坏了。