我的 WordPress 网站使用 Nginx。最近我注意到服务器容量从 8GB 增加到了 40GB。我发现 WordPress MYSQL 二进制日志占用了更多空间。每秒都会将数据库事务写入 Binlog 文件。
我想知道我们的网站/WordPress 上为什么没有大量流量。并且有这么多又大的 MySQL binlog 文件,以及每秒在 binlog 文件中记录的大量数据库事件,可能是由机器人攻击或任何插件大量使用数据库进行临时存储造成的。
到目前为止,我所做的就是运行 mysql> PURGE BINARY LOGS BEFORE '2021-08-30 22:46:26'。这会将磁盘大小从 40GB 减少到 10GB,这很好。
我的问题:(1)由于我使用单个服务器并且没有使用副本,我可以禁用二进制日志(mysql> SET SQL_LOG_BIN =0)吗,如果我禁用二进制日志,这会导致问题吗?
(2)是什么原因导致二进制日志文件快速增加,这可能是恶意流量吗?如果是,我该如何阻止它?
任何想法?
答案1
设置expire_logs_days
或binlog_expire_logs_seconds
使得 binlog 将被自动(定期)清除。
Binlog 用于复制和/或某些类型的备份。既然你似乎没有做这两件事,是的,请更改为log_bin = OFF
。注意:执行SET
不会在下次重启后持续存在。你必须更改配置文件(也许my.cnf
)。
为什么增长如此之快?如果不查看 binlog 以查看其中有哪些庞大、重复或不正常的内容,就很难回答这个问题。
DBA 类型的问题最好直接发到 dba.stackexchange.com
如果文件有一个或多个“include”,请按照它们找到那里的文件。例如:
!includedir /etc/mysql/conf.d/
该目录将包含 0 个或多个配置延续。考虑添加一个新文件,以你的名字作为文件名,内容如下
[mysqld]
log_bin = OFF
实际上,以 开头命名文件可能更好,z
这样它将(按字母顺序)最后处理。