Imprimir información de depuración del procedimiento almacenado en MySQL

¿Hay alguna forma en MySQL de imprimir mensajes de depuración en stdout, temptable o logfile? Algo como:

  • imprimir en SQLServer
  • DBMS_OUTPUT.PUT_LINE en Oracle

solución

 

Opción 1: coloque esto en su procedimiento para imprimir 'comentario' en la salida estándar cuando se ejecute.

SELECCIONE 'Comentario';

Opción 2: coloque esto en su procedimiento para imprimir una variable con ella en la salida estándar:

declare myvar INT por defecto 0; 
SET myvar = 5; 
SELECT concat ('myvar es', myvar);

Esto imprime myvar es 5 a stdout cuando se ejecuta el procedimiento.

Opción 3, cree una tabla con una columna de texto llamada tmptable y envíe mensajes a ella:

declare myvar INT por defecto 0; 
SET myvar = 5; 
insertar en tmptable select concat ('myvar es', myvar);

Podría poner lo anterior en un procedimiento almacenado, por lo que todo lo que tendría que escribir es esto:

CALL log (concat ('el valor es', myvar));

Lo que ahorra algunas pulsaciones de teclas.

Opción 4, registrar mensajes para archivar

seleccione "pingüino" como iniciar sesión en el archivo de salida '/tmp/result.txt';

Hay restricciones muy severas en este comando. Solo puede escribir el archivo de salida en áreas del disco que otorgan al grupo "otros" permisos de creación y escritura. Debería funcionar guardándolo en el directorio / tmp.

Además, una vez que escribe el archivo de salida, no puede sobrescribirlo. Esto es para evitar que los crackers arraiguen su caja solo porque han inyectado SQL en su sitio web y pueden ejecutar comandos arbitrarios en MySQL.

https://www.it1352.com/618737.html

Supongo que te gusta

Origin blog.csdn.net/tjcwt2011/article/details/114895086
Recomendado
Clasificación