0

mysql 的命令行客户端是否允许我收听当前的查询?

所以我不需要打开日志记录并且可以检查查询的时间,我暂时对它感兴趣。

4

3 回答 3

1

是的,使用用户登录 mysql,root然后执行以下查询:

SHOW FULL PROCESSLIST;

您可以启用对文件的查询日志记录,然后使用tail -f file_namelinux 命令查看当前查询。看这里

或者你也可以使用 linux 命令:

外壳>watch -n1 'uptime ; mysql -u root -p'your_password' test -e"show full processlist"'

于 2012-07-25T13:12:54.843 回答
1

假设您使用的是 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;
于 2012-07-25T13:42:37.763 回答
0

正如 MySQL手册所说

SHOW [FULL] PROCESSLIST;
于 2012-07-25T13:13:22.003 回答