我在数据库上运行了一个长时间运行的事务
---TRANSACTION 2 4166167596, ACTIVE 14868 sec, process no 7906, OS thread id 1169635648
MySQL thread id 34318076, query id 1997556522 10.186.131.136 admin
Run Code Online (Sandbox Code Playgroud)
以上是SHOW INNODB ENGINE STATUS命令的输出
我想查看运行查询ID为1997556522的查询.SHOW FULL PROCESSLIST不是一个选项,因为它要求我从数百个列表中手动查找查询.
这个SO线程说你可以通过查询INFORMATION_SCHEMA.PROCESSLISTMySQL 5.1.7及更高版本上的表来做到这一点.是否可以在旧版本上这样做?
我在MySQL 5.0.45上运行
您应该使用线程ID,而不是查询ID.
如果您有shell访问权限,则可以执行show full processlist,然后grep查找相关的线程ID.
例如:
mysql -e "show full processlist;" | grep 34318076
Run Code Online (Sandbox Code Playgroud)