2011-08-25 25 views
6

我可以從mysql query id找到確切的查詢嗎?查找mysql中query_id的查詢

這是「SHOW ENGINE INNODB STATUS」的MySQL中的一部分:

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

有沒有通過我能找到什麼是ID爲1360的查詢的方法嗎?

回答

0

剛加入這一行到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 

又見http://www.jeff-barr.com/?p=112http://dev.mysql.com/doc/refman/5.1/en/query-log.html

+0

其中之一是查詢ID? –

+0

我相信「36」是查詢ID – bpgergo

+0

我想這是格式'cat /tmp/mysql_query.log | egrep「^ \ s +([0-9] +)Query \ s + SELECT」'希望有幫助 – bpgergo

0

您可以使用下面的命令: SHOW PROCESSLIST;

它將爲您提供當前正在運行的所有進程以及正在執行的查詢ID和查詢。