GNU/Linux >> Linux の 問題 >  >> Linux

SHOW PROCESSLISTの出力をMySQLのファイルに保存するにはどうすればよいですか?

質問: Oracle SQLでSPOOLコマンドを使用してクエリ結果をファイルに保存しましたが、すべて完了したら、スプールをオフにすることができます。 MySQLで同じことをどのように達成できますか?たとえば、MySQLでは、「SHOW FULL PROCESSLIST」クエリは、現在画面上で実行されているすべてのMySQLプロセスを一覧表示します(長いリストの場合は、画面の最後の数行のみが表示されます)。クエリ結果をファイルに保存するためのSPOOLのようなコマンドがMySQLにあるかどうか知りたいですか?または、少なくとも「more」のようなシェルコマンドに出力をパイプ(|)できるはずです。

ORACLE SQLの場合:

クエリ結果の出力をファイルに保存するには、spoolを使用します。

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

回答:MySQLの場合

方法1:

MySQLにはSPOOLコマンドはありませんが、代替コマンド teeを使用できます。 ロギングをオンにして ロギングをオフにします。

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.

これで、ログファイル/tmp/text.txtを確認できます。

方法2: シェルプロンプトからMySQLクエリを実行し、出力をより多くにパイプすることができます。

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

注: プロセスリストクエリを実行するには特権が必要です。

方法3: 以下に示すように、シェルプロンプトからクエリを実行し、出力をファイルにリダイレクトできます。

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

(または)

$ mysql -u root -p -e "show full processlist" > /tmp/out.txt
注: プロセスリストクエリを実行するには特権が必要です。

SELECTクエリに使用されるSELECTINTOOUTFILE:

選択クエリを実行している場合は、以下に示すようにSELECTINTOOUTFILEを使用できます。

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

お役に立てば幸いです。


Linux
  1. Linuxでコマンド出力をファイルに保存する方法

  2. Stdoutに出力し、同時にGrepをファイルに出力しますか?

  3. ターミナルでファイルまたはディレクトリのフルパスを表示するにはどうすればよいですか?

  1. マイファイルをデフォルトページとして表示する方法

  2. コマンドの出力をクリップボードに直接コピーするにはどうすればよいですか?

  3. 出力をファイルに追加する方法は?

  1. time コマンドの出力を Linux のファイルにリダイレクトする方法は?

  2. 複数のファイルの内容を 1 つのファイルに追加する方法

  3. コマンド出力をAnsibleの配列に保存する方法は?