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
Si pudieses poner los campos que hay en la tabla mysql.general_log y como hacer queries sería de mucha utilidad….
Reblogged this on Delocosyenajenados.
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).
Pingback: Cómo activar y visualizar el log de MySQL | Blog de Mario Javier
Pingback: Sácale partido a los datos: los ficheros log
Estupendo, muy útil, gracias!
Muchas gracias amigo !!! muy útil 🙂
Saludos
Gracias a ti!!! 🙂 me alegra que sea útil.
¿Qué versión de MySQL utilizas? yo con la versión 5.7.22 hago eso igual que tú y en el fichero donde deberían guardarse los logs no se guarda nada nunca
Llegaste tarde clemente12 se apago la luz
No me salen filas en la tabla, a pesar que lo he activado con ON