Redimensionar innodb_log_file_size de MySQL

Tras realizar un análisis del estado del servidor de MySQL con MySQL Tunner, mostraba que deberíamos cambiar el valor del parámetro innodb_log_file_size.

Así que nos vamos al fichero de configuración (my.cnf) y, como no existe, añado innodb_log_file_size=16M. Reinicio el servicio de base de datos y… no arranca el servicio. En el log veo el motivo, sólo se permiten valores entre 0 y 5M.

InnoDB: Error: log file ./ib_logfile0 is of different size 0 5242880 bytes
InnoDB: than specified in the .cnf file 0 1073741824 bytes!
InnoDB: Possible causes for this error:
 (a) Incorrect log file is used or log file size is changed
 (b) In case default size is used this log file is from 10.0
 (c) Log file is corrupted or there was not enough disk space
 In case (b) you need to set innodb_log_file_size = 48M

Tras realizar una búsqueda por Google, encuentro la solución en una entrada de Andy Hayes en DBA Diaries, donde se explica detalladamente que hay dos motivos por los que se bloquea esa modificación: por un lado el valor de innodb_fast_shutdown (no era nuestro caso) y por otro los errores de los ficheros de log.

1.- Cambiar el valor de innodb_fast_shutdown a 0 o 1
2.- Para el servidor de MySQL y revisar que no existan errores
3.- Mover los ficheros de log fuera del directorio de datos (ib_logfile0, ib_logfile1, etc)
4.- Cambiar el valor de innodb_log_file_size en my.cnf
5.- Iniciar el servicio de MySQL

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *