Vaciar el error.log de MySQL

20 Agosto 2013 at 10:26 by Adrián Pérez

Un tema que me ha preocupado siempre, son los logs de MySQL, y más concretamente el error.log. En entornos de replicación, el error.log puede llegar a ser gigante cuando se usan sentencias que el sistema detecta como "advertencias". Por ejemplo:

[Warning] Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. The statement is unsafe because it uses a LIMIT clause. This is unsafe because the set of rows included cannot be predicted.

¿Cómo podemos vaciar el error.log de forma segura, sin que tenga impacto en el servicio de MySQL? Pues vamos a verlo.

Según leo en la documentación oficial de MySQL, el procedimiento para vaciar el log de errores del MySQL de forma segura, variará en función de la versión de MySQL usada. En mi caso, estoy usando la siguiente versión:

[root@MyServer]# mysql --version
mysql Ver 14.14 Distrib 5.5.28, for Linux (x86_64) using readline 5.1

A partir de la versión 5.5.7, que es mi caso, podemos realizar este proceso tal y como sigue, directamente desde la línea de comandos:

[root@MyServer]# mv mysql-error.log mysql-error.log.old
[root@MyServer]# mysqladmin --user=root --password flush-logs
[root@MyServer]# mv mysql-error.log.old /backup-directory

Con ésto tendremos el nuevo log de errores vacío, y ya siendo usado por mysql, sin necesidad de reiniciar el servicio.

Fuente:

http://dev.mysql.com/doc/refman/5.5/en/error-log.html