3

我有一个 MySQL 事务 ID,和一个可爱的 MySQL 控制台。有没有办法从中获取已在该事务中运行的查询列表?

4

1 回答 1

3

我假设“事务 id”是指“线程 id”。

这只有在您启用通用查询日志时才有可能。这会记录服务器上运行的每个查询。它增加了足够的开销,以至于大多数人不会在生产中使用它。但是,如果您碰巧在您的环境中使用general_log = 'ON'log_output = 'TABLE',那么您可以查看给定线程 id 的查询历史记录,如下所示:

select * 
from mysql.general_log
where thread_id = <your_thread_id>
order by event_time desc

id 最终会翻转,因此您可能应该将查询限制在适当的时间窗口(过去一小时、过去一天等)。例如,将其限制为过去一天:

select * 
from mysql.general_log
where thread_id = <your_thread_id>
and event_time >= now() - interval 1 day
order by event_time desc
于 2012-08-07T18:15:19.143 回答