strace
La forma más rápida de ver consultas MySQL / MariaDB en vivo es usar el depurador. En Linux puedes usar strace
, por ejemplo:
sudo strace -e trace=read,write -s 2000 -fp $(pgrep -nf mysql) 2>&1
Puesto que hay gran cantidad de caracteres de escape, es posible formato de salida de strace por tuberías (sólo tiene que añadir |
entre estos dos de una sola línea) anterior en el siguiente orden:
grep --line-buffered -o '".\+[^"]"' | grep --line-buffered -o '[^"]*[^"]' | while read -r line; do printf "%b" $line; done | tr "\r\n" "\275\276" | tr -d "[:cntrl:]" | tr "\275\276" "\r\n"
Por lo tanto, debería ver consultas SQL bastante limpias sin tiempo, sin tocar los archivos de configuración.
Obviamente, esto no reemplazará la forma estándar de habilitar registros, que se describe a continuación (que implica volver a cargar el servidor SQL).
dtrace
Use las sondas MySQL para ver las consultas MySQL en vivo sin tocar el servidor. Script de ejemplo:
#!/usr/sbin/dtrace -q
pid$target::*mysql_parse*:entry /* This probe is fired when the execution enters mysql_parse */
{
printf("Query: %s\n", copyinstr(arg1));
}
Guarde el script anterior en un archivo (como watch.d
) y ejecute:
pfexec dtrace -s watch.d -p $(pgrep -x mysqld)
Obtenga más información: Introducción a DTracing MySQL
Catalejo MySQL de Gibbs
Mira esta respuesta .
Registros
Estos son los pasos útiles para el desarrollo que propone.
Agregue estas líneas en su ~/.my.cnf
o global my.cnf
:
[mysqld]
general_log=1
general_log_file=/tmp/mysqld.log
Rutas: /var/log/mysqld.log
o /usr/local/var/log/mysqld.log
también puede funcionar dependiendo de los permisos de su archivo.
luego reinicie su MySQL / MariaDB por (prefijo con sudo
si es necesario):
killall -HUP mysqld
Luego revise sus registros:
tail -f /tmp/mysqld.log
Después de terminar, cambiar general_log
a 0
(para que pueda utilizarlo en el futuro), a continuación, quitar el archivo y el servidor SQL reinicio de nuevo: killall -HUP mysqld
.