¿Hay alguna consulta / forma de mostrar las últimas consultas ejecutadas en TODOS los servidores?
471
Para aquellos bendecidos con MySQL> = 5.1.12, puede controlar esta opción globalmente en tiempo de ejecución:
SET GLOBAL log_output = 'TABLE';
SET GLOBAL general_log = 'ON';
mysql.general_log
Si prefiere exportar a 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 para editar archivos .cnf porque:
my.cnf
archivo y potencialmente activa permanentemente el registro/var/log /var/data/log
/opt /home/mysql_savior/var
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 consulta general para ese tipo de diagnóstico. En general, no registra todas las consultas SELECT en un servidor de producción, sin embargo, es un asesino de rendimiento.
Edite su configuración de MySQL, por ejemplo /etc/mysql/my.cnf: busque o agregue una línea como esta
Reinicie mysql para recoger ese cambio, ahora puede
Hola, listo, puedes ver las consultas a medida que entran.
fuente
Puede hacer lo que fluye para monitorear los registros de consultas mysql.
Abra el archivo de configuración mysql my.cnf
Busque las siguientes líneas debajo de un
[mysqld]
encabezado y descomente estas líneas para habilitar el registroReinicie su servidor mysql para reflejar los cambios.
Monitoree el registro del servidor mysql con el siguiente comando en la terminal
fuente
fuente
1) Si el registro general de mysql está habilitado, entonces podemos verificar las consultas en el archivo de registro o en la tabla en función de lo que hemos mencionado en la configuración. Compruebe lo que está habilitado con el siguiente comando
Si necesitamos el historial de consultas en la tabla, entonces
Echa un vistazo a la tabla mysql.general_log
Si prefiere exportar a un archivo:
2) También podemos verificar las consultas en el archivo .mysql_history cat ~ / .mysql_history
fuente
Tal vez pueda averiguarlo mirando el registro de consultas .
fuente
Si mysql binlog está habilitado, puede verificar los comandos ejecutados por el usuario ejecutando el siguiente comando en la consola de Linux navegando al directorio binq de mysql
permitiendo
o el registro general tendrá un efecto en el rendimiento de mysql
fuente
Si no desea cambiar su configuración de MySQL, puede utilizar un generador de perfiles SQL como "Neor Profile SQL" http://www.profilesql.com .
fuente
Después de leer la respuesta de Paul, seguí cavando para obtener más información en https://dev.mysql.com/doc/refman/5.7/en/query-log.html
Encontré un código realmente útil por una persona. Aquí está el resumen del contexto.
(Nota: el siguiente código no es mío)
Este script es un ejemplo para mantener limpia la tabla que lo ayudará a reducir el tamaño de su tabla. Como después de un día, habrá aproximadamente 180k consultas de registro. (en un archivo, sería 30 MB por día)
Debe agregar una columna adicional (event_unix) y luego puede usar este script para mantener el registro limpio ... actualizará la marca de tiempo en una marca de tiempo Unix, eliminará los registros anteriores a 1 día y luego actualizará event_time en Timestamp from event_unix ... suena un poco confuso, pero está funcionando muy bien.
Comandos para la nueva columna:
Script de limpieza:
El crédito va para Sebastian Kaiser (Escritor original del código).
Espero que alguien lo encuentre útil como lo hice.
fuente
Puedes mirar lo siguiente en Linux
vi .mysql_history
Puede ayudarfuente