GNU/Linux >> Tutoriales Linux >  >> Linux

¿Cómo almacenar la salida de SHOW PROCESSLIST en un archivo en MySQL?

Pregunta: He usado el comando SPOOL en Oracle SQL para almacenar los resultados de la consulta en un archivo y, cuando todo está listo, se puede desactivar el spool. ¿Cómo puedo lograr lo mismo en MySQL? Por ejemplo, en MySQL, la consulta 'MOSTRAR LISTA DE PROCESOS COMPLETOS' enumerará todos los procesos de MySQL que se están ejecutando actualmente en la pantalla (y si es una lista larga, verá solo las últimas filas en la pantalla). Me gustaría saber si hay un comando tipo SPOOL en MySQL para almacenar los resultados de la consulta en un archivo. o al menos debería poder canalizar ( | ) la salida al comando de shell como "más".

En ORACLE SQL:

Para almacenar la salida del resultado de la consulta en un archivo, uso spool.

sqlplus> SPOOL /tmp/output.txt
sqlplus> select * from UserTable;
sqlplus> SPOOL off;

Respuesta:Para MySQL

Método 1:

No hay comando SPOOL en MySQL, pero puede usar el comando alternativo tee para activar el registro y nota para desactivar el registro.

mysql> tee /tmp/test.txt
 Logging to file '/tmp/test.txt'
 mysql> show full processlist;
 +------+-----------+-----------+--------+---------+------+-------+-----------------------+
 | Id | User | Host | db | Command | Time | State | Info |
 +------+-----------+-----------+--------+---------+------+-------+-----------------------+
 | 7478 | sample | host.name| dbname | Sleep | 0 | | NULL |
 | 7479 | sample | host.name | NULL | Query | 0 | NULL | show full processlist |
 +------+-----------+-----------+--------+---------+------+-------+-----------------------+
 2 rows in set (0.00 sec)
 mysql> notee
 Outfile disabled.

Ahora, puede consultar el archivo de registro /tmp/text.txt.

Método 2:  Puede ejecutar la consulta de MySQL desde el indicador de shell y canalizar la salida a más.

$ mysql -u root -p -e "show full processlist" | more

Nota: Necesita privilegios para ejecutar la consulta de la lista de procesos.

Método 3: Puede ejecutar la consulta desde el indicador de shell y redirigir la salida a un archivo como se muestra a continuación:

$ mysql -u root -p -e "show full processlist" | tee /tmp/out.txt

(o)

$ mysql -u root -p -e "show full processlist" > /tmp/out.txt
Nota: Necesita privilegios para ejecutar la consulta de la lista de procesos.

SELECT INTO OUTFILE usado para consultas SELECT:

Si está ejecutando una consulta de selección, entonces puede usar SELECT INTO OUTFILE como se muestra a continuación:

mysql> select * into outfile '/tmp/out.txt' from user_table;

Espero que ayude.


Linux
  1. ¿Cómo puedo copiar la salida de un comando directamente en mi portapapeles?

  2. ¿Cómo agregar la salida a un archivo?

  3. ¿Cómo capturar la salida de un comando superior en un archivo en Linux?

  4. ¿Cómo guardar la salida de este comando awk en un archivo?

  5. ¿Cómo almacenar la salida del comando en una matriz en Ansible?

¿Cómo importar un archivo CSV a una base de datos MySQL?

Cómo hacer eco en un archivo

¿Cómo encuentro la ubicación MySQL my.cnf?

¿Cómo redirigir la salida del comando de tiempo a un archivo en Linux?

Cómo agregar contenidos de múltiples archivos en un archivo

Almacene la salida del comando de fecha y reloj en un archivo