数据库遇到
Table 'lg_task' is marked as crashed and should be repaired
问题,因为强制重启服务器导致数据库损坏,需要对mysql进行修复
在网上搜到一些资料,修复mysql可以用mysqlcheck
或myisamchk
这两种方法,前者是在mysqld服务器运行时才能使用,后者应用于服务没有运行时。由于是线上修复,为了保险起见,在人少的时候停掉数据库来进行修复。
-
停止数据库服务:
service mysql stop
-
备份数据库:
cd /data/mysql_data
cp -R mydb /data/mysql_data_bak/mydb2016101
-
进入数据库目录:
cd /data/mysql_data/mydb
-
检查出错的文件:
myisamchk -im lg_task
如果没有检查出来,用myisamchk -ie lg_task
-
查看错误码:
perror 错误码
-
快速修复:
myisamchk -rq lg_task
如果失败,执行:myisamchk -rB lg_task
如果失败,执行:myisamchk –o lg_task
-
修复完后再重复步骤4,检查修复结果
-
修复成功后启动数据库:
service mysql start
参考文档:
- MySQL数据库mysqlcheck的使用方法详解
- 快速解决"is marked as crashed and should be repaired"故障
- mysqlcheck和myisamchk
- 教您修复mysql数据库的方法
- 使用myisamchk命令检查和修复数据库
windows下操作:
C:\Program Files\MySQL\MySQL Server 5.6\bin>myisamchk -rq D:\db_data2\mydb\lg_project_users