Quiero deshabilitar el registro binario para diagnosticar algún problema poco interesante. De todos modos, nunca he usado la replicación; está habilitada solo porque es la opción predeterminada en MySQL/8. Google muestra como 20 formas diferentes de hacerlo y ninguna parece funcionar en mi configuración.
El manual oficial dice:
Para deshabilitar el registro binario, puede especificar la opción
--skip-log-bino--disable-log-binal inicio.
Se ejecuta como un servicio de Windows, instalado con la aplicación MySQL Installer oficial, por lo que usé regedit (HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MySQL80\ImagePath), pero las banderas, en cualquier ubicación, ya sea independiente o con =1 , impiden el servicio. desde el inicio, el archivo de registro aún no incluye ningún mensaje de error.
También he leído que puedes tener esto en el archivo predeterminado:
[mysqld] skip-log-binEl servidor se inicia, el registro binario de errores permanece habilitado.
Se ignora la configuración de una variable de entorno MYSQLD_OPTS con --skip-log-bin=1 (tal vez sea exclusivo de algunas distribuciones de Linux).
¿Cómo deshabilita el registro binario en MySQL/8 en Windows?
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Servicios\MySQL80\ImagePath
"C:\Program Files\MySQL\MySQL Server 8.0\bin\mysqld.exe" --defaults-file="C:\ProgramData\MySQL\MySQL Server 8.0\my.ini" MySQL80C:\ProgramData\MySQL\MySQL Server 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-binFunciona para mí después de haber declarado disable_log_bin y comentado el log-bin en my.cnf.
Parece que el problema está relacionado con el orden de las operaciones.
Si se especifica la opción --skip-log-bin o --disable-log-bin al inicio, el registro binario se deshabilita, con la variable de sistema log_bin establecida en APAGADO. Si se especifica cualquiera de estas opciones y también se especifica --log-bin, la opción especificada más adelante tiene prioridad. [sic]
De forma predeterminada, MySQL establece un valor de configuración de log-bin="FOO.bin" , debe asegurarse de que skip-log-bin se declare DEBAJO o DESPUÉS de la opción de configuración log-bin .
C:\ProgramData\MySQL\MySQL Server 8.0\my.ini
[mysqld] #... log-bin="FOO.bin" skip-log-binDespués de guardar el archivo de configuración, reinicie el servicio MySQL.
SELECT @@GLOBAL.log_bin, @@GLOBAL.version, @@GLOBAL.version_comment, @@GLOBAL.version_compile_os;Resultado
+------------------+------------------+------------------------------+-----------------------------+ | @@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) La prueba con la declaración skip-log-bin antes o por encima log-bin , incluso cuando se usa log-bin=0 o log-bin=OFF dio como resultado que la declaración log-bin tuviera prioridad, convirtiendo el valor de log-bin especificado en un cuerda.
Eliminar la declaración log-bin y declarar skip-log-bin cualquier lugar, resultó en log_bin como OFF
La variable de entorno MYSQLD_OPTS es específica de los entornos systemd (Linux). [sic] [sic]
No parece haber una variable de entorno equivalente para Windows. [sic] Lo cual creo que no se aplica cuando se ejecuta MySQL como un servicio de Windows.