在MySQL/8 for Windows中禁用二进制日志记录

在MySQL/8 for Windows中禁用二进制日志记录,mysql,windows,mysql-8.0,Mysql,Windows,Mysql 8.0,我想禁用二进制日志记录,以便诊断一些不感兴趣的问题。我从来没有使用过复制,它之所以启用,只是因为它是MySQL/8中的默认值。谷歌展示了20种不同的方法,但在我的设置中似乎没有一种有效 报告说: 要禁用二进制日志记录,您可以指定--跳过日志箱或 --在启动时禁用日志箱选项 它作为Windows服务运行,与官方的MySQL安装程序应用程序一起安装,因此我使用了regedit(HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MySQL80\I

我想禁用二进制日志记录,以便诊断一些不感兴趣的问题。我从来没有使用过复制,它之所以启用,只是因为它是MySQL/8中的默认值。谷歌展示了20种不同的方法,但在我的设置中似乎没有一种有效

报告说:

要禁用二进制日志记录,您可以指定
--跳过日志箱
--在启动时禁用日志箱
选项

它作为Windows服务运行,与官方的MySQL安装程序应用程序一起安装,因此我使用了regedit(HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MySQL80\ImagePath),但在任何位置,无论是独立的还是带有
=1
,都会阻止服务启动,但日志文件不包含任何错误消息

我还了解到,您可以在默认文件中使用以下内容:

[mysqld]
skip-log-bin
服务器启动,错误二进制日志记录保持启用状态

将忽略使用
--skip log bin=1
设置
MYSQLD\u OPTS
环境变量(可能是某些Linux发行版独有的)

如何在Windows上禁用MySQL/8中的二进制日志记录


HKEY\U LOCAL\U MACHINE\SYSTEM\CurrentControlSet\Services\MySQL80\ImagePath

"C:\Program Files\MySQL\MySQL Server 8.0\bin\mysqld.exe" --defaults-file="C:\ProgramData\MySQL\MySQL Server 8.0\my.ini" MySQL80
C:\ProgramData\MySQL\MySQL服务器8.0\my.ini

[client]
port=3306

[mysql]
no-beep

[mysqld]
port=3306
datadir=C:/ProgramData/MySQL/MySQL Server 8.0/Data
default_authentication_plugin=mysql_native_password
default-storage-engine=INNODB
sql-mode="STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION"
log-output=FILE
general-log=0
general_log_file="FOO.log"
slow-query-log=1
slow_query_log_file="FOO-slow.log"
long_query_time=10
# One of my failed attempts:
skip-log-bin

这一问题似乎与行动顺序有关

如果在指定了--skip log bin或--disable log bin选项 启动时,禁用二进制日志记录,使用log_bin系统变量 出发如果指定了这些选项中的任何一个并且--log bin为 同样指定,以后指定的选项优先。

配置选项 默认情况下,MySQL将配置值设置为
log-bin=“FOO.bin”
,您需要确保
skip-log-bin
log-bin
配置选项下方或之后声明

C:\ProgramData\MySQL\MySQL服务器8.0\my.ini

保存配置文件后,重新启动MySQL服务

选择@GLOBAL.log\u bin、@GLOBAL.version、@GLOBAL.version\u comment、@GLOBAL.version\u compile\u os;
结果

+------------------+------------------+------------------------------+-----------------------------+
| @@GLOBAL.log_bin | @@GLOBAL.version | @@GLOBAL.version_comment     | @@GLOBAL.version_compile_os |
+------------------+------------------+------------------------------+-----------------------------+
|                0 | 8.0.21           | MySQL Community Server - GPL | Win64                       |
+------------------+------------------+------------------------------+-----------------------------+
1 row in set (0.00 sec)
log bin
之前或之上声明
skip log bin
时进行测试,即使使用
log bin=0
log bin=OFF
也会导致
log bin
声明优先-将指定的
log bin
值转换为字符串。
删除
log bin
声明并在任何位置声明
跳过log bin
,导致
log\u bin
变为
OFF


环境变量 环境变量
MYSQLD\u OPTS
特定于
systemd
(Linux)环境


Windows似乎没有等效的环境变量。我认为在将MySQL作为Windows服务运行时,它不适用。

在我声明了
禁用日志bin
并在my.cnf中对
日志bin
进行了注释后,它对我有效。

似乎
禁用日志bin
跳过日志bin
的同义词。您可以使用其中一个来禁用二进制日志()。
+------------------+------------------+------------------------------+-----------------------------+
| @@GLOBAL.log_bin | @@GLOBAL.version | @@GLOBAL.version_comment     | @@GLOBAL.version_compile_os |
+------------------+------------------+------------------------------+-----------------------------+
|                0 | 8.0.21           | MySQL Community Server - GPL | Win64                       |
+------------------+------------------+------------------------------+-----------------------------+
1 row in set (0.00 sec)