martes, 28 de julio de 2015

Mysql - 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:
1
mysql -p
Luego activa la tabla de log de mysql:
1
set global general_log=ON
Pasos básicos: veamos la tabla general_log:
1
2
3
4
5
6
7
8
9
10
11
12
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. 
1
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:
1
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
1
set global general_log=OFF
y de vez en cuando limpiarla:
1
truncate table mysql.general_log;
Toda ayuda para ver los errores es poca! Espero os sea de utilidad

No hay comentarios:

Publicar un comentario