在MySQL/8 for Windows中禁用二进制日志记录
我想禁用二进制日志记录,以便诊断一些不感兴趣的问题。我从来没有使用过复制,它之所以启用,只是因为它是MySQL/8中的默认值。谷歌展示了20种不同的方法,但在我的设置中似乎没有一种有效 报告说: 要禁用二进制日志记录,您可以指定在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
--跳过日志箱
或
--在启动时禁用日志箱
选项
它作为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)