GNU/Linux >> Linux Esercitazione >  >> Linux

Come memorizzare l'output di SHOW PROCESSLIST in un file in MySQL?

Domanda: Ho utilizzato il comando SPOOL in Oracle SQL per memorizzare i risultati della query in un file e quando tutto è terminato, lo spool può essere disattivato. Come posso ottenere lo stesso risultato in MySQL? Ad esempio, in MySQL la query 'SHOW FULL PROCESSLIST' elencherà tutti i processi MySQL attualmente in esecuzione sullo schermo (e se è un elenco lungo, vedrai solo le ultime righe sullo schermo). Vorrei sapere se esiste un comando simile a SPOOL in MySQL per archiviare i risultati della query in un file? o almeno dovrei essere in grado di reindirizzare ( | ) l'output al comando della shell come "altro".

In ORACLE SQL:

Per memorizzare l'output del risultato della query in un file, utilizzo spool.

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

Risposta:per MySQL

Metodo 1:

Non esiste un comando SPOOL in MySQL, ma puoi utilizzare il comando alternativo tee per attivare la registrazione e nota per disattivare la registrazione.

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.

Ora puoi controllare il file di registro /tmp/text.txt.

Metodo 2:  Puoi eseguire la query MySQL dal prompt della shell e reindirizzare l'output a altro.

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

Nota: Hai bisogno dei privilegi per eseguire la query processlist.

Metodo 3: Puoi eseguire la query dal prompt della shell e reindirizzare l'output a un file come mostrato di seguito:

$ 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: Hai bisogno dei privilegi per eseguire la query processlist.

SELECT INTO OUTFILE utilizzato per le query SELECT:

Se stai eseguendo una query select, puoi utilizzare SELECT INTO OUTFILE come mostrato di seguito:

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

Spero che aiuti.


Linux
  1. Come posso copiare l'output di un comando direttamente nei miei appunti?

  2. Come aggiungere l'output a un file?

  3. Come reindirizzare l'output di system() su un file?

  4. Come reindirizzare l'output del comando time su un file in Linux?

  5. Come salvare l'output di questo comando awk su file?

Come importare un file CSV in un database MySQL?

Output su Stdout e allo stesso tempo Grep in un file?

Linux:come mostrare il tipo di filesystem tramite il terminale??

Come mostrare il mio file come pagina predefinita

Come fare eco in un file

Come trovo la posizione MySQL my.cnf