首页
mysql遇到Table 'xxx' is marked as crashed and should be repaired问题

数据库遇到Table 'lg_task' is marked as crashed and should be repaired问题,因为强制重启服务器导致数据库损坏,需要对mysql进行修复

在网上搜到一些资料,修复mysql可以用mysqlcheckmyisamchk这两种方法,前者是在mysqld服务器运行时才能使用,后者应用于服务没有运行时。由于是线上修复,为了保险起见,在人少的时候停掉数据库来进行修复。

  1. 停止数据库服务: service mysql stop

  2. 备份数据库:
    cd /data/mysql_data
    cp -R mydb /data/mysql_data_bak/mydb2016101

  3. 进入数据库目录: cd /data/mysql_data/mydb

  4. 检查出错的文件: myisamchk -im lg_task 如果没有检查出来,用myisamchk -ie lg_task

  5. 查看错误码: perror 错误码

  6. 快速修复: myisamchk -rq lg_task
    如果失败,执行:myisamchk -rB lg_task
    如果失败,执行:myisamchk –o lg_task

  7. 修复完后再重复步骤4,检查修复结果

  8. 修复成功后启动数据库: service mysql start

参考文档:

windows下操作:
C:\Program Files\MySQL\MySQL Server 5.6\bin>myisamchk -rq D:\db_data2\mydb\lg_project_users