Obtener historial de comandos en MySQL

Mehvish Ashiq 20 junio 2023
  1. Historial de comandos de MySQL
  2. Utilice la línea de comandos de Windows para obtener el historial de comandos en MySQL
  3. Use MySQL Workbench en Windows para obtener el historial de comandos de MySQL
  4. Utilice la terminal de Ubuntu para obtener el historial de los comandos de MySQL
Obtener historial de comandos en 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

  1. Abra la línea de comandos de Windows y vaya a la carpeta bin de MySQL que se encuentra en C:\Archivos de programa\MySQL\MySQL Server 8.0\bin de forma predeterminada.

  2. Inicie sesión en MySQL con sus credenciales de inicio de sesión.

  3. 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';
    
  4. 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:

historial de comandos mysql cmd

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:

historial de comandos mysql cmd en archivos

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:

historial de comandos mysql cmd para la última consulta

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:

banco de trabajo de historial de comandos mysql en tablas

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.

opción de historial de banco de trabajo de historial de comandos mysql

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:

banco de trabajo de historial de comandos mysql para la última consulta

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:

Historial de comandos mysql usando ubuntu primera parte

Puede ejecutar el siguiente comando para eliminar los espacios y hacerlos más legibles.

sed "s/\\\040/ /g" < ~/.mysql_history

Producción:

historial de comandos mysql usando ubuntu parte dos

Mehvish Ashiq avatar Mehvish Ashiq avatar

Mehvish Ashiq is a former Java Programmer and a Data Science enthusiast who leverages her expertise to help others to learn and grow by creating interesting, useful, and reader-friendly content in Computer Programming, Data Science, and Technology.

LinkedIn GitHub Facebook