
lazydays
V1
2023/02/16阅读:9主题:默认主题
mysql user表损坏案例一则
环境信息:centos7.5 + mysql 5.7.30
今天业务反馈某业务数据连接不上,登录看了一下,发现数据库服务已经挂了(由于特殊原因,该库没有监控,并且是单点--成本原因,刺激不?!)。 于是查看日志,一直在反复刷下图信息。 解决尝试: 1、重启--失败 2、修改参数重启--失败 3、查看系统日志-- 发现有oom的提示,增加主机资源配置重启--失败(oom的时间没有对准) 仔细分析现象,查看日志。
分析过程:
ps -ef | grep mysql 发现进程不在了,但是割一会儿又会出现,pid一直在变化。
于是,我查了一下mysqld.service的配置,发现了如下启动测略: 我注释掉该启动策略,mysqld的进程也不闪现了。
手动重启一下,观察日志,报错如下:
结论:user表损坏。
解决方案:
1、mysql参数my.cnf 中的[mysqld]下添加 skip-grant-tables
2、启动mysql
service mysqld start
3、登录mysql客户端
mysql > repair table mysql.user;
4、注释掉参数中的 skip-grant-tables,重启服务,问题解决。
service mysqld restart
欢迎关注公众号:DBA札记
作者介绍

lazydays
V1