Repair by sorting 或者 Table ‘*.*‘ is marked as crashed and last (automatic)

报错信息:

select count(*)  from xxx; 执行报错表数量查询,(这里会查询报错,不要着急往下走)
show PROCESSLIST;  查询执行任务,State中会显示(Repair by sorting)
kill ****;  关闭该任务

再运行上面的sql,就会报错Table ‘.’ is marked as crashed and last (automatic)

解决办法:

如果数据量大,涉及信息重要,最好不要在本服务器下修复数据,以免照成不必要的麻烦!

可通过服务器快照(有快照的前提下),先把快照做成镜像,然后买一个临时按量服务器(阿里很便宜,几毛一小时),租的时候选择自定以镜像,选择自己生成的镜像,就会生成一个临时的服务器,这个服务器就相当于是一个拷贝版本。(有的服务器挂载了云盘,记得挂载,这里不多解释)

通过mysql命令行来执行

1、service mysqld stop 停止mysql服务;

2、cd /var/local/mysql/table 切换到该表目录下(注意:不切换过来会总提示myisamchk一些错误导致失败);

3、myisamchk -r xxx.MYI (如果还是提示错误,就多加一个参数-f 强制进行。)

切记一直等待!!!等出现下面的 Data records: 16591794(数据量) 就说成功了,表就可以操作了

Data records: 6822642

  • Fixing index 1
  • Fixing index 2
  • Fixing index 3
  • Fixing index 4
  • Fixing index 5
  • Fixing index 6
  • Fixing index 7
  • Fixing index 8 Data records: 16591794
  1. service mysqld start 启动数据库,执行上面sql会发现可以查出数据量,说明表已经修复,转成sql,备份好数据,大功告成

参考文章地址,并详细补充

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值