如何防止mysql创建mysql-bin.00000x文件?

问题描述 投票:0回答:3

我看到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

但这似乎根本没有任何影响。 据我所知,这些文件主要是为了复制而存在,但我没有复制任何东西。

mysql my.cnf mysqlbinlog
3个回答
2
投票

如果您想禁用二进制日志记录(复制所必需的,对恢复有用),请通过注释掉 my.cnf 中的

log_bin = ...
行并重新启动服务器来实现。没有它mysql也能正常运行。

您可以通过执行

show binary logs
手动查看mysql内的二进制日志,如果您想让其保持活动状态并时不时地处理它们,您可以使用
purge binary logs
命令删除它们。


1
投票

原来有一个设置

server-id=1
我必须删除。现在问题已经解决了。


0
投票

我使用的是MySQL 8.4.2,我已经尝试过上述方法,但仍然无法禁用binlog。我只能用 ''' 在 DATE_SUB(CURDATE(), INTERVAL 2 DAY) 之前清除二进制日志; ''' 每天清理日志

© www.soinside.com 2019 - 2024. All rights reserved.