Obtener historial de comandos en MySQL
- Historial de comandos de MySQL
- Utilice la línea de comandos de Windows para obtener el historial de comandos en MySQL
- Use MySQL Workbench en Windows para obtener el historial de comandos de MySQL
- Utilice la terminal de Ubuntu para obtener el historial de los comandos de MySQL
Este artículo destaca varias formas en Windows y Linux para obtener el historial de los comandos de MySQL que hemos ejecutado.
Historial de comandos de MySQL
Usaremos los sistemas operativos Windows y Linux (Ubuntu 20.04) para conocer los diferentes enfoques para obtener el historial de los comandos de MySQL.
Para el sistema operativo Windows, utilizaremos MySQL Workbench y la línea de comandos de Windows (también conocida como cmd y símbolo del sistema) para acceder al historial de comandos de MySQL en forma de archivo y tabla.
En el caso del sistema operativo Linux, utilizaremos el shell (terminal) de Linux para acceder al historial de comandos de MySQL.
Utilice la línea de comandos de Windows para obtener el historial de comandos en MySQL
Aquí exploraremos tres métodos para obtener el historial de comandos en MySQL.
Obtenga el historial de todos los comandos de MySQL en formato tabular
-
Abra la línea de comandos de Windows y vaya a la carpeta
bin
de MySQL que se encuentra enC:\Archivos de programa\MySQL\MySQL Server 8.0\bin
de forma predeterminada. -
Inicie sesión en MySQL con sus credenciales de inicio de sesión.
-
Ejecute las siguientes dos consultas para activar el registro de consultas de MySQL y preparar el historial de comandos de MySQL en formato tabular.
SET GLOBAL log_output = 'table'; SET GLOBAL general_log = 'on';
-
Ejecute la siguiente consulta para obtener el historial de los comandos MySQL ejecutados como salida.
SELECT a.*, CONVERT(a.argument USING utf8) FROM mysql.general_log a;
En la consulta anterior, usamos el método convert()
para convertir los valores hexadecimales del campo argumento
en texto. También puede obtener los valores del atributo argumento
en valores hexadecimales utilizando MySQL versión 5.7 o superior.
Como tenemos espacio limitado en la línea de comando, estamos seleccionando campos particulares de la siguiente manera:
SELECT a.event_time,a.user_host, a.thread_id, a.server_id,
CONVERT(a.argument USING utf8) AS arugment
FROM mysql.general_log a LIMIT 10;
Producción:
Obtenga el historial de todos los comandos de MySQL en un archivo
Este método es muy similar al anterior. Solo tenemos que ejecutar las siguientes consultas después de iniciar sesión en MySQL.
SET GLOBAL log_output = 'file';
SET GLOBAL general_log_file = "/yourPath/logfile.log";
SET GLOBAL general_log = 'on';
Ahora, ubique el archivo en la ruta especificada y ábralo para ver todos los detalles. Por lo general, el archivo filename.log
tiene el siguiente aspecto.
Producción:
Obtenga el historial del último comando MySQL ejecutado para una sesión específica
También podemos encontrar el último comando MySQL ejecutado solo usando la siguiente consulta para una sesión en particular. Estamos haciendo esto para raíz
aquí y seleccionando solo dos campos debido al espacio limitado en la línea de comando.
SELECT a.event_time,CONVERT(a.argument USING utf8) AS arugment
FROM mysql.general_log a WHERE user_host LIKE 'root%'
ORDER BY a.event_time DESC LIMIT 1;
Producción:
Use MySQL Workbench en Windows para obtener el historial de comandos de MySQL
Aquí también tenemos tres formas de recuperar el historial de comandos de MySQL. Estos métodos son los mismos que discutimos usando la línea de comandos de Windows. Pero esta vez, ejecutaremos en MySQL Workbench.
Obtenga el historial de comandos de MySQL en formato tabular
Ejecutamos las siguientes consultas para obtener el historial de comandos de MySQL en forma tabular. Aquí, el método convert()
transforma los valores blob
del campo argumento
en texto.
También puede obtener los valores del atributo argumento
como un blob
en Workbench si está utilizando MySQL versión 5.7 o superior.
SET GLOBAL log_output = 'table';
SET GLOBAL general_log = 'on';
SELECT a.*, CONVERT(a.argument USING utf8) FROM mysql.general_log a;
Producción:
En lugar de escribir consultas, podemos usar la opción Historial de salida
(resaltada en la siguiente captura de pantalla) para obtener el historial de comandos.
Obtenga el historial de comandos de MySQL en uno o varios archivos
Podemos obtener todo el historial en un archivo en la ruta especificada.
SET GLOBAL log_output = 'file';
SET GLOBAL general_log_file = "/yourPath/logfile.log";
SET GLOBAL general_log = 'on';
También podemos ir a la ubicación C:\Users\DELL\AppData\Roaming\MySQL\Workbench\sql_history
para ver todos los archivos individuales que tienen el historial de comandos de MySQL.
Obtenga el historial de comandos de MySQL para la última consulta ejecutada
SELECT a.*,CONVERT(a.argument USING utf8) AS arugment
FROM mysql.general_log a WHERE user_host LIKE 'root%'
ORDER BY a.event_time DESC LIMIT 1;
Producción:
Utilice la terminal de Ubuntu para obtener el historial de los comandos de MySQL
Ejecute el siguiente comando después de iniciar sesión como superusuario
.
cat ~/.mysql_history
Producción:
Puede ejecutar el siguiente comando para eliminar los espacios y hacerlos más legibles.
sed "s/\\\040/ /g" < ~/.mysql_history
Producción: