De repente me encuentro con que el servidor de MySQL no arranca y da un mensaje de error como el que sigue:
May 9 04:20:16 localhost mysqld_safe[11853]: started
May 9 04:20:17 localhost mysqld[11857]: 070509 4:20:17 /usr/sbin/mysqld: unknown variable 'expire_logs_days=10'
May 9 04:20:17 localhost mysqld[11857]:
May 9 04:20:17 localhost mysqld_safe[11859]: ended
May 9 04:20:23 localhost /etc/init.d/mysql[11922]: 0 processes alive and '/usr/bin/mysqladmin --defaults-file=/etc/mysql/debian.cnf ping' resulted in
May 9 04:20:23 localhost /etc/init.d/mysql[11922]: ^G/usr/bin/mysqlad min: connect to server at 'localhost' failed
May 9 04:20:23 localhost /etc/init.d/mysql[11922]: error: 'Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)'
May 9 04:20:23 localhost /etc/init.d/mysql[11922]: Check that mysqld is running and that the socket: '/var/run/mysqld/mysqld.sock' exists!
May 9 04:20:23 localhost /etc/init.d/mysql[11922]: mysqld: unknown variable 'expire_logs_days=10'
Buscando por la red, finalmente he encontrado de dónde venía el posible problema. Más concretamente, en esta porción de código:
# The following can be used as easy to replay backup logs or for replication.
#server-id = 1
log_bin = /var/log/mysql/mysql-bin.log
# WARNING: Using expire_logs_days without bin_log crashes the server! See README.Debian!
expire_logs_days = 10
max_binlog_size = 100M
#binlog_do_db = include_database_name
#binlog_ignore_db = include_database_name
¿Como solucionarlo?
Editando el fichero de configuración de MySQL (/etc/mysql/my.cnf) y comentando la correspondiente linea donde se define el valor de expire_logs_days.
Una vez modificado el fichero de configuración, basta con reiniciar MySQL (/etc/init.d/mysql restart) y todo vuelve a la normalidad.
Fuente | Mysql no arranca per la variable expire_logs_days