mysql的binlog日志过大导致系统崩溃!

上午在悠闲地摸着鱼,突然金主爸爸在工作群发信息说系统登不上了!
在这里插入图片描述
先急的是领导:
在这里插入图片描述
收到开工指令,立马开干!

排查

遇到问题首先自己复原问题,根据客户描述我们测试系统登录功能,输入系统用户名密码显示接口超时。代码是可靠的。出于对同事100%的信任,依据我的经验,很可能是部署系统环境的问题。ssh连上虚机一探究竟。

  • 查看系统日志文件,也发现并无异样。
  • top查看cpu利用率,不高。
  • df -h查看磁盘空间。哦豁,100%。

接下来就是查找磁盘被什么文件占满了,再把它干掉!

解决

我的思路是进入到/根目录,逐层逐层查看大空间文件。

du -sh ./* | grep G

这里用的比较多的是上面命令,筛选G级别的文件夹。最终让我发现mysql下面的logbin日志。
mysql的binlog日志过大导致系统崩溃!_第1张图片
好家伙,30+G!找到问题这下就剩解决问题了。

binlog是二进制日志文件,用于记录mysql的数据更新或者潜在更新 (比如DELETE语句执行删除而实际并没有符合条件的数据),在mysql主从复制中就是依靠的binlog。

从找到的资料描述来看,这其实就是mysql数据更改记录。可以干掉!
找到mysql配置文件,我存放的目录是/etc/my.cnfvim /etc/my.cnf加入下面两行配置:

# binlog最大占用空间大小为500M
max_binlog_size = 500M
# 日志保存时间为2天
expire_logs_days = 2

保存配置,退出,重启mysql。

systemctl restart mysqld

查看df -h磁盘使用情况:
mysql的binlog日志过大导致系统崩溃!_第2张图片
如此清爽,完工!

你可能感兴趣的:(Linux运维,mysql,数据库)