Loggear todas las consutas de MySQL en un archivo

Author
Por Darío Rivera
Publicado el en MySQL

Hace algún tiempo publicamos un artículo para Hacer Debug a Locks en base de datos MySQL. Sin embargo, muchas veces necesitamos tener una traza completa de cuáles son las consultas ejecutadas paso a paso en el motor de base de datos independientemente la aplicación que esté conectada a él. Es por esto que el día de hoy veremos como volcar todo el registro de consultas ejecutada a un archivo en el sistema operativo el cuál podremos revisar después.

Lo primero que debes hacer es consultar actualmente si el log de consultas está activado y hacia donde está volcando la información. Para esto basta ejecutar el siguiente comando.

mysql> SHOW VARIABLES LIKE "general_log%";
+------------------+----------------------------+
| Variable_name    | Value                      |
+------------------+----------------------------+
| general_log      | OFF                        |
| general_log_file | /var/run/mysqld/mysqld.log |
+------------------+----------------------------+
2 rows in set, 1 warning (0.35 sec)

Una vez hecho esto vemos que el estado es OFF, es decir, no se está loggeando nada en este momento. Para cambiar este comportamiento basta ejecutar el siguiente comando.

mysql> SET GLOBAL general_log = 'ON';

Y eso es todo, las próximas consultas ejecutadas al motor quedarán loggeadas en el archivo de la variable general_log_file. Si deseas cambiar el archivo en donde se están loggeando actualmente las consultas lo puedes hacer de la misma manera como configuramos la variable general_log. Hasta la próxima!.


Acerca de Darío Rivera

Author

Application Architect at Elentra Corp . Quality developer and passionate learner with 10+ years of experience in web technologies. Creator of EasyHttp , an standard way to consume HTTP Clients.

LinkedIn Twitter Instagram

Sólo aquellos que han alcanzado el éxito saben que siempre estuvo a un paso del momento en que pensaron renunciar.