上午在悠闲地摸着鱼,突然金主爸爸在工作群发信息说系统登不上了!

先急的是领导:

收到开工指令,立马开干!
排查
遇到问题首先自己复原问题,根据客户描述我们测试系统登录功能,输入系统用户名密码显示接口超时。代码是可靠的。出于对同事100%的信任,依据我的经验,很可能是部署系统环境的问题。ssh连上虚机一探究竟。
- 查看系统日志文件,也发现并无异样。
- top查看cpu利用率,不高。
- df -h查看磁盘空间。哦豁,100%。
接下来就是查找磁盘被什么文件占满了,再把它干掉!
解决
我的思路是进入到/根目录,逐层逐层查看大空间文件。
du -sh ./* | grep G
这里用的比较多的是上面命令,筛选G级别的文件夹。最终让我发现mysql下面的logbin日志。

好家伙,30+G!找到问题这下就剩解决问题了。
binlog是二进制日志文件,用于记录mysql的数据更新或者潜在更新 (比如DELETE语句执行删除而实际并没有符合条件的数据),在mysql主从复制中就是依靠的binlog。
从找到的资料描述来看,这其实就是mysql数据更改记录。可以干掉!
找到mysql配置文件,我存放的目录是/etc/my.cnf。vim /etc/my.cnf加入下面两行配置:
# binlog最大占用空间大小为500M
max_binlog_size = 500M
# 日志保存时间为2天
expire_logs_days = 2
保存配置,退出,重启mysql。
systemctl restart mysqld
查看df -h磁盘使用情况:

如此清爽,完工!
本文记述了一次紧急处理MySQL binlog日志文件占用大量磁盘空间导致系统无法登录的问题,通过逐步排查定位问题所在,并采取针对性措施进行解决。
1371

被折叠的 条评论
为什么被折叠?



