如何在状态高于x的mysql中显示完整的processlist?
我正在编写一个“系统检查”bash脚本,对于其中一项,我想检查MySQL中所有正在运行的进程,但我只关心它们的状态是否高于30 在MySQL中,有没有办法只显示状态高于x的进程列表,比如超过30个 我尝试了如何在状态高于x的mysql中显示完整的processlist?,mysql,bash,command-line,Mysql,Bash,Command Line,我正在编写一个“系统检查”bash脚本,对于其中一项,我想检查MySQL中所有正在运行的进程,但我只关心它们的状态是否高于30 在MySQL中,有没有办法只显示状态高于x的进程列表,比如超过30个 我尝试了显示processlist,其中state>=30 我有版本5.5.58-0+deb8u1。以下网站可能会帮助您 正如@Harimaman Radhakrishnan回答的那样,SHOW PROCESSLIST命令无法修改 然而,通过读取他的链接,showProcessList实际上读取的是i
显示processlist,其中state>=30代码>
我有版本5.5.58-0+deb8u1。以下网站可能会帮助您
正如@Harimaman Radhakrishnan回答的那样,SHOW PROCESSLIST
命令无法修改
然而,通过读取他的链接,showProcessList
实际上读取的是information\u schema.PROCESSLIST
这意味着您可以对信息\u架构执行常规查询。processlist
如下所示:
SELECT *
FROM information_schema.processlist
WHERE TIME > 30
如果你看,你可以看到每列的意思
我编写了一个查询来选择所有运行超过30秒的进程,但这也可能只是一个休眠连接,例如一个在开始时连接的程序,然后在再次关闭该程序之前保持连接的活动状态
这意味着该进程可以运行几分钟、几小时或几天,但大部分时间都将使用COMMAND='Sleep'
如果只希望看到长时间运行的查询,则应将查询更新为:
SELECT*FROM information\u schema.processlist WHERE COMMAND!='睡眠时间>30代码>
当状态改变时,时间被重置
从文档中可以看到:“线程处于当前状态的时间(以秒为单位)。为了我和其他对此有帮助的人,您能在这里列出我应该使用的命令并解释睡眠与状态的关系吗?谢谢