事件经过

早上起来,发现小说网站打不开了,突然想起前一天,腾讯云给我发送了一条漏洞提示。

难道这么快就被人黑了?

这也不至于吧,那个网站每天的访问人数还不到一百。

登录后台一看,数据库服务器的硬盘被写满了,可用空间为0,难道我遇到了传说中的sql注入攻击?

然而百度了一下,sql注入并不是这个意思。

搞得我有点懵,看了下Web服务器的存储空间是正常的,问题肯定出在数据库上。

研究了一会儿没有办法,只有回档了,把数据库服务器恢复到了20天之前的备份状态,网站立刻恢复了正常。

MySQL惹的祸

虽然己经恢复了正常,但是观察了几个小时后发现,数据库服务器的己用空间依然以每小时几百MB的速度增加。

进入MySQL命令行,查看各个数据库的大小又是正常的。

照这样下去,不用多少天硬盘又得写满。

于是,我用了一个笨办法,用du -sh这个命令一个一个文件夹的找,看到底是哪个文件夹占用了磁盘空间。

最后让我找到了/var/lib/mysql这个文件夹下,有binlog.000001-binlog.000013这一系列的文件,每个文件的大小都是100MB。终于找到了原因。

mysql-binlog是MySQL数据库的二进制日志,用于记录用户对数据库操作的SQL语句((除了数据查询语句)信息。可以使用mysqlbin命令查看二进制日志的内容。

最近搜索引擎在疯狂的爬我的小说站,我想这也是binlog被灌爆的原因了吧。

解决办法

首先想到的就是直接禁用binlog。

小破站有个备份就行了,用不到binlog这么高级的功能。而且在MySQL8以上的版本中,binlog是默认开启的。

查看binlog是否开启:

1
mysql> show variables like 'log-bin';

binlog开启

关闭binlog

在my.cnf中的[mysqld]中添加skip-log-bin

检查binlog是否关闭成功

binlog关闭

经验教训

经过这次“事件”,给我的一个教训就是,换用新版的软件一定得谨慎,使用前要好好了解一下新版软件的新特性。发生问题后不要着急,细心捋一捋还是能够很容易的找到问题所在的。


本站由 澄哥 使用 Stellar 主题创建。


本页点击量本站点击量次。
您是本站的第个小伙伴
本站已稳定运行