Deshabilite el registro binario de MySQL con la variable log_bin


35

El archivo de configuración predeterminado de MySQL /etc/mysql/my.cnf instalado por algún paquete de Debian que utiliza APT a menudo establece la variable log_bin, por lo que binlog está habilitado:

log_bin = /var/log/mysql/mysql-bin.log

Cuando quiero deshabilitar el registro binario en dicha instalación, comente la línea en my.cnf funciona, por supuesto, pero me pregunto si hay una manera de deshabilitar el registro binario estableciendo explícitamente log_bin en OFF, en un estilo debian, quiero decir en un archivo incluido como /etc/mysql/conf.d/myCustomFile.cnf, por lo que my.cnf predeterminado no cambia y puede actualizarse fácilmente con apt, si es necesario.

Intenté "log_bin = 0", "log_bin = OFF" o "log_bin =" pero ninguno funciona ...

Respuestas:


42

Esta es una vieja pregunta, pero surgió en una búsqueda mientras intentaba recordar mi memoria sobre el nombre correcto de la opción y ahora que lo he descubierto estoy agregando los detalles aquí.

La parte clave de la pregunta es:

Me refiero a un archivo incluido como /etc/mysql/conf.d/myCustomFile.cnf

Puede hacer esto desde un archivo de opciones incluido utilizando la opción skip-log-bin. Por ejemplo, puede crear /etc/mysql/conf.d/disable_binary_log.cnfcon los siguientes contenidos:

[mysqld]
skip-log-bin

También puede agregar skip-como prefijo a otras opciones para deshabilitarlas de esta manera.


1
Genial, exactamente lo que esperaba. Eso funciona bien en MariaDB 10.0 al menos. Muchas gracias.
Nicolas Payart

7

En MySQL 8, es la opción disable_log_bin que debe proporcionarse sin ningún parámetro en el my.cnfarchivo en la [mysqld]sección.

[mysqld]
disable_log_bin
some-other-option = any-value

5

Puede verlo así, log_bin no debe aceptar parámetros, ya sea que ponga:

log_bin

o nada en absoluto, ya que es un parámetro booleano.

Sin embargo, si se establece un valor, los registros se habilitan y el valor se interpreta como el nombre base binlog.

Las opciones de registro tienen un historial de no ser demasiado intuitivo y de cambiar su formato de versión a versión (te estoy mirando, registro lento).


No funciona en MariaDB
MechanTOurS

Dado que uso MariaDB, y tengo exactamente la misma línea en mi configuración, estoy muy seguro de que funciona.
jynus

4

Si no está replicando, puede deshabilitar binlogging cambiando su archivo my.ini o my.cnf. Abra su my.ini o /etc/my.cnf (/etc/mysql/my.cnf), ingrese:

# vi /etc/my.cnf

Busque una línea que lea "log_bin" y elimínela o comente de la siguiente manera:

#log_bin = /var/log/mysql/mysql-bin.log

También debe eliminar o comentar las siguientes líneas:

#expire_logs_days = 10

#max_binlog_size = 100M

Cierra y guarda el archivo. Finalmente, reinicie el servidor mysql:

# service mysql restart


1
Creo que el OP entiende esto, por eso escribió: "Me refiero a un archivo incluido como /etc/mysql/conf.d/myCustomFile.cnf, por lo que my.cnf no cambia"
Peter V. Mørch

1

Del Manual para MariaDB ( https://mariadb.com/kb/en/library/activating-the-binary-log/ )

Si no proporciona un nombre (que opcionalmente puede incluir una ruta absoluta), el valor predeterminado será datadir / log-basename-bin, datadir / mysql-bin o datadir / mariadb-bin

Sin embargo,

Los clientes con el privilegio SUPER pueden deshabilitar y volver a habilitar el registro binario para la sesión actual configurando la variable sql_log_bin.

SET sql_log_bin = 0;

SET sql_log_bin = 1;

Sin embargo, si dice que se habilitó de manera predeterminada durante la instalación, debe deshabilitarlo eliminando la línea de su archivo my.cnf y luego reinicie mysqld. También puede purgar los datos binarios ( https://dev.mysql.com/doc/refman/5.6/en/purge-binary-logs.html )

PURGE BINARY LOGS

Finalmente, como menciona la respuesta del otro póster, en MySQL 8 hay una opción para desactivar explícitamente el registro binario del archivo de configuración utilizando las opciones --skip-log-bino --disable-log-binen la sección [mysqld] del archivo de configuración.

Para deshabilitar el registro binario, puede especificar la opción --skip-log-bino --disable-log-binal inicio. Si se especifica alguna de estas opciones y --log-bintambién se especifica, la opción especificada más adelante tiene prioridad. Cuando el registro binario está deshabilitado, la variable del sistema log_bin se establece en OFF.


0

Como sé después de actualizar un paquete, el archivo de configuración debe ser el anterior, por lo que después de la actualización, tendrá los mismos archivos de configuración. De lo contrario, puede crear un segundo archivo de configuración en la ruta $ MYSQL_HOME / my.cnf. Este es para opciones específicas del servidor y, como sé, sobrescribirá la configuración en /etc/my.cnf global


1
Sí, la política predeterminada de Debian no sobrescribe un archivo de configuración en / etc. Pero mi pregunta era precisamente cómo sobrescribir la configuración log_bin con un "valor nulo" SIN comentar la línea en /etc/mysql/my.cnf.
Nicolas Payart

skip-log-bin apaga los booleanos establecidos en otros lugares
santiago arizti
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.