我看到mysql创建了很多名为mysql-bin.000001、mysql-bin.000002、mysql-bin.000003等的文件。 我发现here我的 log_bin 设置为“ON”。 我想知道如何将其关闭以及这是否是明智之举。 我尝试过这个:
set log_bin = "OFF";
,但结果是:ERROR 1238 (HY000): Variable 'log_bin' is a read only variable
在多个网站上我找到了this解决方案并在“/etc/my.cnf”中更改了它:
禁用 MySQL 二进制日志记录
如果您不进行复制,您可以通过更改来禁用二进制日志记录 您的 my.ini 或 my.cnf 文件。打开您的 my.ini 或 /etc/my.cnf (/etc/mysql/my.cnf),输入:
# vi /etc/my.cnf
找到一行“log_bin”并删除或注释它,如下所示:
# log_bin = /var/log/mysql/mysql-bin.log
您还需要删除或注释以下行:
# expire_logs_days = 10
# max_binlog_size = 100M
关闭并保存文件。
最后重启mysql服务器:
# service mysql restart
但这似乎根本没有任何影响。 据我所知,这些文件主要是为了复制而存在,但我没有复制任何东西。
如果您想禁用二进制日志记录(复制所必需的,对恢复有用),请通过注释掉 my.cnf 中的
log_bin = ...
行并重新启动服务器来实现。没有它mysql也能正常运行。
您可以通过执行
show binary logs
手动查看mysql内的二进制日志,如果您想让其保持活动状态并时不时地处理它们,您可以使用purge binary logs
命令删除它们。
原来有一个设置
server-id=1
我必须删除。现在问题已经解决了。
我使用的是MySQL 8.4.2,我已经尝试过上述方法,但仍然无法禁用binlog。我只能用 ''' 在 DATE_SUB(CURDATE(), INTERVAL 2 DAY) 之前清除二进制日志; ''' 每天清理日志