设为首页 收藏本站
查看: 808|回复: 0

[经验分享] Mysql show processlist 详解

[复制链接]

尚未签到

发表于 2018-9-30 08:42:56 | 显示全部楼层 |阅读模式
  最近排查一些MySQL的问题,会经常用到 show processlist,所以在这里把这个命令总结一下,做个备忘,以备不时只需。
  show processlist 是显示用户正在运行的线程,需要注意的是,除了 root 用户能看到所有正在运行的线程外,其他用户都只能看到自己正在运行的线程,看不到其它用户正在运行的线程。除非单独个这个用户赋予了PROCESS 权限。
https://pic4.zhimg.com/80/v2-eb4254945a43d5fdc0e8718da8183aa6_hd.jpgroot用户,可以看到全部线程运行情况https://pic1.zhimg.com/80/v2-1c028842dcc9e9b659279d3660e04e29_hd.jpg普通的activiti用户只能看到自己的

https://pic4.zhimg.com/80/v2-8f56f112c1809b4308258e154de41942_hd.jpg单独给activiti用户授PROCESS权限,(授权后需要退出重新登录)

  show processlist 显示的信息都是来自MySQL系统库 information_schema 中的 processlist 表。所以使用下面的查询语句可以获得相同的结果:
select * from information_schema.processlist  了解这些基本信息后,下面我们看看查询出来的结果都是什么意思。

  •   Id: 就是这个线程的唯一标识,当我们发现这个线程有问题的时候,可以通过 kill 命令,加上这个Id值将这个线程杀掉。前面我们说了show processlist 显示的信息时来自information_schema.processlist 表,所以这个Id就是这个表的主键。
  •   User: 就是指启动这个线程的用户。
  •   Host: 记录了发送请求的客户端的 IP 和 端口号。通过这些信息在排查问题的时候,我们可以定位到是哪个客户端的哪个进程发送的请求。
  •   DB: 当前执行的命令是在哪一个数据库上。如果没有指定数据库,则该值为 NULL 。
  •   Command: 是指此刻该线程正在执行的命令。这个很复杂,下面单独解释
  •   Time: 表示该线程处于当前状态的时间。
  •   State: 线程的状态,和 Command 对应,下面单独解释。
  •   Info: 一般记录的是线程执行的语句。默认只显示前100个字符,也就是你看到的语句可能是截断了的,要看全部信息,需要使用 show full processlist。
  下面我们单独看一下 Command 的值:

  •   Binlog Dump: 主节点正在将二进制日志 ,同步到从节点
  •   Change User: 正在执行一个 change-user 的操作
  •   Close Stmt: 正在关闭一个Prepared Statement 对象
  •   Connect: 一个从节点连上了主节点
  •   Connect Out: 一个从节点正在连主节点
  •   Create DB: 正在执行一个create-database 的操作
  •   Daemon: 服务器内部线程,而不是来自客户端的链接
  •   Debug: 线程正在生成调试信息
  •   Delayed Insert: 该线程是一个延迟插入的处理程序
  •   Drop DB: 正在执行一个 drop-database 的操作
  •   Execute: 正在执行一个 Prepared Statement
  •   Fetch: 正在从Prepared Statement 中获取执行结果
  •   Field List: 正在获取表的列信息
  •   Init DB: 该线程正在选取一个默认的数据库
  •   Kill : 正在执行 kill 语句,杀死指定线程
  •   Long Data: 正在从Prepared Statement 中检索 long data
  •   Ping: 正在处理 server-ping 的请求
  •   Prepare: 该线程正在准备一个 Prepared Statement
  •   ProcessList: 该线程正在生成服务器线程相关信息
  •   Query: 该线程正在执行一个语句
  •   Quit: 该线程正在退出
  •   Refresh:该线程正在刷表,日志或缓存;或者在重置状态变量,或者在复制服务器信息
  •   Register Slave: 正在注册从节点
  •   Reset Stmt: 正在重置 prepared statement
  •   Set Option: 正在设置或重置客户端的 statement-execution 选项
  •   Shutdown: 正在关闭服务器
  •   Sleep: 正在等待客户端向它发送执行语句
  •   Statistics: 该线程正在生成 server-status 信息
  •   Table Dump: 正在发送表的内容到从服务器
  •   Time: Unused
  如果有歧义可以查看官方文档: 8.14.1 Thread Command Values
  下面我们看看 State 的值有哪些:
  ...... 发现有大神已经总结的超好了:MySQL SHOW PROCESSLIST协助故障诊断
  ...... 所以大家直接看大神的文章就好了。好尴尬,但我是个有始有终的人,就酱紫吧。
  官方文档关于 State 的解释: 8.14.2 General Thread States
  下面是常用到的SQL,记录下来便于使用。
  按客户端 IP 分组,看哪个客户端的链接数最多
select client_ip,count(client_ip) as client_num from (select substring_index(host,':' ,1) as client_ip from processlist ) as connect_info group by client_ip order by client_num desc;  查看正在执行的线程,并按 Time 倒排序,看看有没有执行时间特别长的线程
select * from information_schema.processlist where Command != 'Sleep' order by Time desc;  找出所有执行时间超过 5 分钟的线程,拼凑出 kill 语句,方便后面查杀
select concat('kill ', id, ';') from information_schema.processlist where Command != 'Sleep' and Time > 300 order by Time desc;


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-606494-1-1.html 上篇帖子: mysql ERROR 1290 (HY000): 下篇帖子: mysql启动报错解决-2
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表