文 - 篇  访客 -

mysql-bin系列日志文件导致linux vps磁盘占满及解决办法


  分类:Mysql  / 
更新:2023-08-14 09:48:48  /  创建:2023-08-04 16:06:58
不要删除

昨天在给VPS新增了vhost之后,就出现了一系列的怪问题,机器随后出现”假死”现象,仅仅是安装一个wordpress程序竟然出现超时现 象,随后似乎自己的IP被墙了,晚上重启了机器更换了IP后发现能够正常访问,但是无法登录phpmyadmin似乎mysql服务出现了问题,ssh上 去之后发现mysql服务无法启用,提示一个pid进程出现问题,再随后cat对应的err文件,通过google相关error message,竟然是说磁盘空间已满的缘故,赶紧df -h了一下,30G的磁盘空间,使用了29G+ 占用率99%,看来果真是这问题,于是赶紧清理掉一些上传的程序压缩包,释放了1G左右的空间后,再service mysql start成功启动服务,接着便马上收到dnspod的网站恢复访问的提醒邮件。

问题似乎解决了,但是一想不对,自己的东西加上系统文件总共也就10多G,其他多出来的是什么?通过du -s -h /* 一步步查下去,竟然发现:

/usr/local/mysql/var下面的mysql-bin.0000系列文件占用磁盘空间达到惊人的22G+,通过搜索发现这些是数据库 的操作日志,例如UPDATE一个表,或者DELETE一些数据,即使该语句没有匹配的数据,这个命令也会存储到日志文件中,还包括每个语句执行的时间, 也会记录进去的。难怪磁盘空间会满,感情都是mysql的日志文件搞鬼呀!

知道了问题所在,那么接下来便是如何解决了,这些占用磁盘空间的日志文件可以通过mysql命令来将其清除掉即可,通过

Shell

1

/usr/local/mysql/bin/mysql -u root -p

输入mysql的root密码就可以进行mysql命令模式,再执行:

MySQL

1

mysql> reset master;

清除mysql日志即可,如下图:

我们再查看空间容量时发现,已经空了恢复到本真的状态了:

到这里基本问题解决了,但是根本问题还没有解决,那就是mysql日志还会产生,所以我们还需要想办法将这些日志文件从根本上去除才行,最直接的就是让mysql不要去记录这些日志。

为了防止再次出现此类状况,直接关闭Mysql的log-bin日志功能

vim /etc/my.cnf

找到:

log-bin=mysql-bin

binlog_format=mixed

在前面加上#注释掉,:wq保存退出

最后

/etc/init.d/mysql restart

启动Mysql服务,一切正常。


不要删除

是日已过,命亦随减,如少水魚,斯有何乐?