mysqlのコマンドラインクライアントでは、現在のクエリをリッスンできますか?
だから私はロギングをオンにする必要はなく、時間のクエリをチェックすることができます、私は一時的にそれに興味があります。
mysqlのコマンドラインクライアントでは、現在のクエリをリッスンできますか?
だから私はロギングをオンにする必要はなく、時間のクエリをチェックすることができます、私は一時的にそれに興味があります。
はい、ユーザーを使用して mysql にログインしroot
、次のクエリを実行します。
SHOW FULL PROCESSLIST;
ファイルへのクエリ ロギングを有効にしてから、tail -f file_name
linux コマンドを使用して現在のクエリを表示できます。ここを参照
または、次のように linux コマンドを使用することもできます。
シェル>watch -n1 'uptime ; mysql -u root -p'your_password' test -e"show full processlist"'
MySQL バージョン 5.1.16 以降を使用していると仮定すると、一般的なクエリ ログを一時的に有効にして、ファイルではなくテーブルにログを記録することができます。次に、そのテーブルから選択して最新のクエリを取得できます。
次に例を示します。
-- capture current state
SET @old_general_log = @@global.general_log;
SET @old_log_output = @@global.log_output;
-- set log output to table instead of file
set global log_output = 'TABLE';
-- enable the general log
set global general_log = 'ON';
-- get the latest query, excluding my session
select *
from mysql.general_log
where thread_id != connection_id()
order by event_time desc
limit 1;
-- revert to previous state when done
set global general_log = @old_general_log;
set global log_output = @old_log_output;
MySQLマニュアルが言うように:
SHOW [FULL] PROCESSLIST;