¿Cómo mostrar las últimas consultas ejecutadas en MySQL?
¿Existe alguna consulta/forma de mostrar las últimas consultas ejecutadas en TODOS los servidores?
Para aquellos bendecidos con MySQL >= 5.1.12, pueden controlar esta opción globalmente en tiempo de ejecución:
- Ejecutar
SET GLOBAL log_output = 'TABLE';
- Ejecutar
SET GLOBAL general_log = 'ON';
- Echa un vistazo a la mesa
mysql.general_log
Si prefiere generar un archivo en lugar de una tabla:
SET GLOBAL log_output = "FILE";
el valor por defecto .SET GLOBAL general_log_file = "/path/to/your/logfile.log";
SET GLOBAL general_log = 'ON';
Prefiero este método a editar archivos .cnf porque:
- no estás editando el
my.cnf
archivo y potencialmente activando el registro de forma permanente - No estarás rebuscando en el sistema de archivos buscando el registro de consultas, o peor aún, distrayéndote por la necesidad de encontrar el destino perfecto.
/var/log /var/data/log
/opt /home/mysql_savior/var
- No es necesario reiniciar el servidor ni interrumpir ninguna conexión actual.
- reiniciar el servidor lo deja donde comenzó (el registro aún está desactivado de manera predeterminada)
Para obtener más información, consulte el Manual de referencia de MySQL 5.1 - Variables del sistema del servidor - general_log
Puede habilitar un registro de consultas general para ese tipo de diagnóstico. Sin embargo, generalmente no registra todas las consultas SELECT en un servidor de producción, ya que afecta el rendimiento.
Edite su configuración de MySQL, por ejemplo, /etc/mysql/my.cnf: busque o agregue una línea como esta
[mysqld]
log = /var/log/mysql/mysql.log
Reinicie mysql para recoger ese cambio, ahora puede
tail -f /var/log/mysql/mysql.log
Hola, listo, puedes ver las consultas a medida que van llegando.
SELECT * FROM mysql.general_log WHERE command_type ='Query' LIMIT total;