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;