GNU/Linux >> Znalost Linux >  >> Linux

Jak uložit výstup SHOW PROCESSLIST do souboru v MySQL?

Otázka: Použil jsem příkaz SPOOL v Oracle SQL pro ukládání výsledků dotazu do souboru, a když je vše hotovo, zařazování lze vypnout. Jak mohu dosáhnout stejného v MySQL? Například v MySQL dotaz „ZOBRAZIT ÚPLNÝ SEZNAM PROCESŮ“ zobrazí na obrazovce všechny procesy MySQL, které aktuálně běží (a pokud se jedná o dlouhý seznam, uvidíte na obrazovce pouze několik posledních řádků). Chtěl bych vědět, zda v MySQL existuje příkaz podobný SPOOL pro ukládání výsledků dotazu do souboru? nebo bych alespoň měl být schopen převést výstup ( | ) do příkazu shellu jako „more“.

V ORACLE SQL:

K uložení výstupu výsledku dotazu do souboru používám spool.

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

Odpověď:Pro MySQL

Metoda 1:

V MySQL není žádný příkaz SPOOL, ale můžete použít alternativní příkaz tee zapněte protokolování a poznámku pro vypnutí protokolování.

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.

Nyní můžete zkontrolovat soubor protokolu /tmp/text.txt.

Metoda 2:  Můžete spustit dotaz MySQL z příkazového řádku a výstup přesměrovat na další.

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

Poznámka: Ke spuštění dotazu na procesní seznam potřebujete oprávnění.

Metoda 3: Dotaz můžete spustit z příkazového řádku shellu a přesměrovat výstup do souboru, jak je ukázáno níže:

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

(nebo)

$ mysql -u root -p -e "show full processlist" > /tmp/out.txt
Poznámka: Ke spuštění dotazu na procesní seznam potřebujete oprávnění.

SELECT DO OUTFILE se používá pro SELECT dotazy:

Pokud provádíte výběrový dotaz, můžete použít SELECT INTO OUTFILE, jak je uvedeno níže:

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

Doufám, že to pomůže.


Linux
  1. Jak uložit výstup příkazu do souboru v Linuxu

  2. Linux – jak přimět Sar, aby se ukazovala za předchozí den?

  3. Jak zobrazit úplnou cestu k souboru nebo adresáři v terminálu?

  1. Jak přesměrovat výstup příkazu time do souboru v Linuxu?

  2. Jak připojit obsah více souborů do jednoho souboru

  3. Jak uložit výstup příkazu do pole v Ansible?

  1. Výstup do Stdout a zároveň Grep do souboru?

  2. Linux – Jak zobrazit typ souborového systému přes terminál?

  3. Jak zobrazit Můj soubor jako výchozí stránku