从mysql中的query_id查找查询

从mysql中的query_id查找查询,mysql,deadlock,workbench,Mysql,Deadlock,Workbench,我可以从mysql查询id中找到确切的查询吗 这是MySQL中“显示引擎INNODB状态”的一部分: MySQL thread id 1106, query id 1360 localhost 127.0.0.1 test2 ---TRANSACTION 0 19491, not started, OS thread id 2960035840 有没有一种方法可以让我找到id为1360的查询?有些人说,打开“常规日志”,你就可以找到id为的查询。 刚刚将这一行添加到my.cnf log=/tm

我可以从mysql查询id中找到确切的查询吗

这是MySQL中“显示引擎INNODB状态”的一部分:

MySQL thread id 1106, query id 1360 localhost 127.0.0.1 test2
---TRANSACTION 0 19491, not started, OS thread id 2960035840

有没有一种方法可以让我找到id为1360的查询?

有些人说,打开“常规日志”,你就可以找到id为的查询。

刚刚将这一行添加到my.cnf

log=/tmp/mysql_query.log
然后重新启动mysql服务(
/etc/init.d/mysql stop
/etc/init.d/mysql start

然后跟踪日志文件。看起来里面有一个查询id

110825 15:07:49    36 Connect   ***@localhost on ***
...
           36 Query SELECT * FROM genre g LIMIT 0,1000
           36 Quit  

另请参见和,您可以使用以下命令: 显示进程列表


它将为您提供所有当前正在运行的进程及其查询ID和正在执行的查询。

其中哪一个是查询ID?我相信“36”是查询ID。我认为这是格式
cat/tmp/mysql_query.log | egrep“^\s+([0-9]+)query\s+选择“
希望能帮助我很抱歉?我认为'36'是mysql线程id。不过不确定。哎呀,对不起。无论如何,我试图找到一些关于查询日志字段的信息。但没有发现任何有用的东西。因此,我担心您必须重新生成死锁,然后检查日志以确保,但我相信“36”是queryid,而threadid不在QueryLogID中。您找到了这样做的方法吗?