log_bin = /var/log/mysql/mysql-bin.log
当我想要在这样的安装上禁用二进制日志记录,当然要注释掉my.cnf中的行,但是我想知道是否有一种方法可以通过以debian风格将log_bin显式设置为OFF来禁用二进制日志记录,我的意思是在包含的文件中/etc/mysql/conf.d/myCustomFile.cnf,因此默认my.cnf不会更改,并且可以根据需要由apt轻松更新。
我尝试了“ log_bin = 0”,“ log_bin = OFF”或“ log_bin =“,但均无效...
#1 楼
这是一个古老的问题,但是当我尝试在内存中搜索正确的选项名称时出现了一个问题,因此,现在我已经弄清楚了,现在在这里添加详细信息。问题的关键部分是:
我的意思是在包含的文件中,例如/etc/mysql/conf.d/myCustomFile.cnf
您可以使用选项
skip-log-bin
从随附的选项文件中执行此操作。例如。您可以使用以下内容创建/etc/mysql/conf.d/disable_binary_log.cnf
:[mysqld]
skip-log-bin
您也可以将
skip-
作为前缀添加到其他选项,也可以通过这种方式禁用它们。#2 楼
在MySQL 8中,必须在my.cnf
部分的[mysqld]
文件中不带任何参数的情况下提供选项disable_log_bin。[mysqld]
disable_log_bin
some-other-option = any-value
评论
这是在MySQL 8.0上为我工作的版本。我要补充一点,它还要求文件中不包含“ log-bin”(“ disable_log_bin”和“ log_bin =“仍启用binlog)。
– Tomas Creemers
20-09-18在7:25
skip-log-bin在mysql 8 / ubuntu 20上也对我有用
–FlyingZebra1
20 Dec 23'2:23
#3 楼
如果不进行复制,则可以通过更改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
#4 楼
您可以这样看,log_bin不应该接受参数,您可以输入:log_bin
或根本不接受任何参数,因为它是一个布尔参数。
但是,如果设置了一个值,则会启用日志,并将该值解释为binlog的基名。
日志选项的历史记录并不是太直观,并且对其进行更改格式因版本而异(我在看着你,日志很慢)。
#5 楼
从MariaDB手册(https://mariadb.com/kb/zh/library/activating-the-binary-log/)中如果您不提供名称(其中可以选择包含
绝对路径),默认值为datadir / log-basename-bin,
datadir / mysql-bin或datadir / mariadb-bin
但是,具有SUPER特权的客户端可以通过设置sql_log_bin变量来禁用和重新启用当前会话的二进制记录
。
SET sql_log_bin = 0;
SET sql_log_bin = 1;
但是,如果您说它是在安装过程中默认启用的,则必须通过从my.cnf文件中删除该行来禁用它,然后重新启动mysqld。您还可以清除二进制数据(https://dev.mysql.com/doc/refman/5.6/en/purge-binary-logs.html)
PURGE BINARY LOGS
最后,正如其他发布者的回答所述,在MySQL 8中,有一个选项可以使用配置文件的[mysqld]部分中的
--skip-log-bin
或--disable-log-bin
选项从配置文件中显式关闭二进制日志记录。要禁用二进制日志记录,可以在启动时指定
--skip-log-bin
或--disable-log-bin
选项。如果指定了这些选项中的任何一个,并且还指定了--log-bin
,则后面指定的选项优先。禁用二进制日志记录时,log_bin系统
变量设置为OFF。
#6 楼
据我了解,更新软件包后,配置文件应该是旧的,因此更新后,您将拥有相同的配置文件。否则,您可以在$ MYSQL_HOME / my.cnf路径中创建第二个配置文件。这是针对服务器的特定选项,据我所知,它将覆盖全局/etc/my.cnf
中的设置
评论
是的,Debian默认策略不会覆盖/ etc中的配置文件。但是我的问题恰恰是如何在不注释/etc/mysql/my.cnf中的行的情况下使用“空值”覆盖log_bin设置。
–尼古拉斯·佩亚特(Nicolas Payart)
2014年8月1日在8:58
skip-log-bin关闭在其他位置设置的布尔值
–圣地亚哥·亚利桑那
18年3月7日在22:04
#7 楼
我有用的配置[mysql]
innodb-doublewrite=OFF
innodb-fast-shutdown=0
innodb_flush_method = noflush
innodb_buffer_pool_size = 150GB
skip-log-bin
评论
欢迎使用DBA SE!如果您解释原因,原因和作用方式,那么它会使您的回答更加有用。 Config / script / code复制粘贴不是非常高质量的内容。
–peterh-恢复莫妮卡
20年8月16日在11:12
评论
谢谢。这救了我-我通过系统删除了一些日志文件,而mysql无法启动。我选择了这个选项,然后mysql启动了!
–FlyingZebra1
20/12/23在2:24