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