在给定MySQL事务ID的情况下,有没有办法查看已运行它的查询的日志?

时间:2012-08-07 18:07:46

标签: mysql

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

1 个答案:

答案 0 :(得分: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

ids最终会翻身,因此您应该将查询限制在适当的时间wondow(过去一小时,过去一天等)。例如,将其限制为过去一天:

select * 
from mysql.general_log
where thread_id = <your_thread_id>
and event_time >= now() - interval 1 day
order by event_time desc