修复Mysql表

开博第一篇文章,写写今天碰到的郁闷事。
一大早发现,日志收集任务失败,从13号开始所有的日志都没有收集到,导致北京那边的解析任务失败。刚开始以为哪位神人把我的进程停掉了,检查了每一台机器,发现所有的进程都正常运行,再查看webtool页面,发现监控页面显示异常,所有的监控信息全部都是init。看了一下config server的日志也没有错误。进入mysql,查看了各个表的数据,都很正常。后来发现某个挂载的磁盘已经满了,进mysql删除没用的数据,然后悲惨的事情发生了,在查询过程中,网络中断,刷新webtool页面没有任何反应,本来我想着重新启动一下mysql可能就好了,结果restart失败。
上google搜了一下,各种方法都试了一遍,发现都没有成功。唯一的可能就是mysql出问题了。然后发现了这篇文章
MySql数据表修复方法有两种:

1. check table 和 repair table

(1).登陆MySQL终端:mysql -uroot -p databasename

(2)check table tabTest; 
如果出现的结果说Status是OK,则不用修复,如果有Error,可以用: 
(3)repair table tabTest;
进行修复,修复之后可以在用check table命令来进行检查
2. myisamchk
使用myisamchk tablename.MYI 
进行检测,如果需要修复的话,可以使用:
myisamchk -of tablename.MYI 
照着上面的方法修复了一下所有的表。ok,终于搞定了

通过mysql的配置文件 sudo vim /etc/my.cnf可以查看mysql的数据存放的路径
检查表的命令:myisamchk tbl_name 运行这个命令,如果该表需要修复,会有提示信息。
恢复表:myisamchk -r -q -f -o tbl_name (-r -q意味着“快速恢复模式”,-r意味着“恢复模式”,-f/--force “自动修复”,-o“安全恢复”)
除了一些常用的几个参数,myisamchk的参数还有很多,大家可以用myisamchk --help查看

本文出自 “积跬步,至千里” 博客,谢绝转载!

你可能感兴趣的:(mysql,数据库,生活,职场,休闲)