# Cómo cambiar el tiempo de rotación de los logs binarios en MySQL 8

- Link: https://binariocero.com/mysql/como-cambiar-el-tiempo-de-rotacion-de-los-logs-binarios-en-mysql-8
- Published: 2024-11-29T19:56:27+01:00
- Author: Juan José Fernández Durán

![Loading](https://binariocero.com/wp-content/plugins/page-views-count/ajax-loader-
2x.gif)

En MySQL 8, la configuración del tiempo de rotación de los logs binarios se controla
mediante la variable `binlog_expire_logs_seconds`. Este parámetro define el tiempo,
en segundos, que los bin logs (archivos de registro binario) permanecen almacenados
antes de ser eliminados automáticamente.

A continuación, se detalla cómo cambiar esta configuración entrando primero dentro
de la CLI de MySql:
`mysql -u root -p`

#### **1. Verificar el valor actual de caducidad**

Conéctate al servidor MySQL y ejecuta el siguiente comando para consultar el valor
actual de `binlog_expire_logs_seconds`:

    ```wp-block-preformatted
    SHOW VARIABLES LIKE 'binlog_expire_logs_seconds';
    ```

**Ejemplo de salida:**

    ```wp-block-preformatted
    +----------------------------+---------+| Variable_name              | Value   |+----------------------------+---------+| binlog_expire_logs_seconds | 2592000 |+----------------------------+---------+
    ```

En este caso, el valor predeterminado es `2592000` segundos (equivalente a 30 días).

#### **2. Cambiar el valor de caducidad temporalmente**

Si deseas cambiar el valor temporalmente (sin modificar la configuración permanente),
utiliza el siguiente comando:

    ```wp-block-preformatted
    SET GLOBAL binlog_expire_logs_seconds = 1296000;
    ```

Esto establece la caducidad en `1296000` segundos (15 días).

**Ejemplo de salida:**

    ```wp-block-preformatted
    Query OK, 0 rows affected (0.00 sec)
    ```

#### **3. Verificar el cambio**

Confirma que el nuevo valor se ha aplicado correctamente ejecutando de nuevo:

    ```wp-block-preformatted
    SHOW VARIABLES LIKE 'binlog_expire_logs_seconds';
    ```

**Ejemplo de salida:**

    ```wp-block-preformatted
    +----------------------------+---------+| Variable_name              | Value   |+----------------------------+---------+| binlog_expire_logs_seconds | 1296000 |+----------------------------+---------+
    ```

#### **4. Configurar el cambio de manera permanente**

Para que el cambio persista después de reiniciar el servidor, debes modificar el
archivo de configuración de MySQL. Sigue estos pasos:

 1. **Abre el archivo de configuración de MySQL:**
    En la mayoría de los sistemas Linux,
    el archivo se encuentra en:`/etc/mysql/mysql.conf.d/mysqld.cnf`
 2. **Agrega o edita la opción correspondiente en la sección `[mysqld]`:**
    Añade la
    siguiente línea:`binlog_expire_logs_seconds=1296000`
 3. **Guarda los cambios y reinicia MySQL:**
    Ejecuta el siguiente comando para reiniciar
    el servicio:`sudo service mysql restart`
 4. **Verifica el valor actualizado:**
    Después del reinicio, confirma que el nuevo 
    valor persista ejecutando:`SHOW VARIABLES LIKE 'binlog_expire_logs_seconds';`

### **Consideraciones finales**

 * Cambiar la caducidad de los archivos binarios puede ayudar a gestionar mejor 
   el uso de disco.
 * Ajusta este valor según tus necesidades, considerando el balance entre la disponibilidad
   de registros para replicación y el espacio de almacenamiento.
 * En sistemas de producción, asegúrate de realizar este cambio fuera de horas de
   mayor actividad para evitar posibles interrupciones.
