Cómo activar y visualizar el log de MySQL

En ocasiones no sabemos lo que MySQL hace por debajo. No sabemos si ha llegado a lanzarse la consulta  o qué error está dando porque no estamos capturando la excepción en la aplicación que estamos desarrollando.

La alternativa: activar y visualizar el log de MySQL.

Escribe las siguientes secuencias entrando en mysql desde consola.

Primero entra en mysql:

mysql -p

Luego activa la tabla de log de mysql:

set global general_log=ON

Pasos básicos: veamos la tabla general_log:

mysql> describe mysql.general_log;
+--------------+------------------+------+-----+-------------------+-----------------------------+
| Field | Type | Null | Key | Default | Extra |
+--------------+------------------+------+-----+-------------------+-----------------------------+
| event_time | timestamp | NO | | CURRENT_TIMESTAMP | on update CURRENT_TIMESTAMP |
| user_host | mediumtext | NO | | NULL | |
| thread_id | int(11) | NO | | NULL | |
| server_id | int(10) unsigned | NO | | NULL | |
| command_type | varchar(64) | NO | | NULL | |
| argument | mediumtext | NO | | NULL | |
+--------------+------------------+------+-----+-------------------+-----------------------------+
6 rows in set (0.07 sec)

Así que esta tabla la puedes utilizar como una tabla común del esquema “mysql”. Ejemplos:

Si deseamos encontrar las últimas llamadas a mysql. 

select * from mysql.general_log order by event_time desc limit 5;

Si deseamos buscar por una IP concreto que ha lanzado la llamada a esa base de datos:


select * from mysql.general_log where user_host like '%192.168.%' order by event_time desc limit 5;

OJO! Esta tabla crece y crece sin parar. Es recomendable desactivarla


set global general_log=OFF

y de vez en cuando limpiarla:


truncate table mysql.general_log;

Toda ayuda para ver los errores es poca! Espero os sea de utilidad

Agradecimientos a @rcasas

Anuncios

7 comentarios en “Cómo activar y visualizar el log de MySQL

  1. Así mucho mejor, te dejo una recomendación para otro post, tomando este como punto de partida.

    En otro post complementario podrías hablar de como se usa este mismo log en formato fichero (en el que hacer un tail -f o un grep).

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s