转自:

mysql : show processlist 详解 - _小豪豪 - 博客园最近排查一些MySQL的问题,会经常用到 show processlist,所以在这里把这个命令总结一下,做个备忘,以备不时只需。 首先是几条常用的SQL。 1、按客户端 IP 分组,看哪个客户端的链https://www.cnblogs.com/remember-forget/p/10400496.html


show processlist ;

最近排查一些MySQL的问题,会经常用到 show processlist,所以在这里把这个命令总结一下,做个备忘,以备不时只需。

首先是几条常用的SQL。

1、按客户端 IP 分组,看哪个客户端的链接数最多

1

select client_ip,count(client_ip) as client_num from (select substring_index(host,':' ,1) as client_ip from information_schema.processlist ) as connect_info group by client_ip order by client_num desc;

  

2、查看正在执行的线程,并按 Time 倒排序,看看有没有执行时间特别长的线程

这条sql 非常重要;

select * from information_schema.processlist where Command != 'Sleep' order by Time desc;

 

3、找出所有执行时间超过 5 分钟的线程,拼凑出 kill 语句,方便后面查杀 (此处 5分钟 可根据自己的需要调整SQL标红处)

可复制查询结果到控制台,直接执行,杀死堵塞进程

1

select concat('kill ', id, ';'from information_schema.processlist where Command != 'Sleep' and Time > 300 order by Time desc;

  

4、查询线程及相关信息

1

show full processlist

  

ID 为此线程ID,Time为线程运行时间,Info为此线程SQL

杀死进程, kill id 即可;

5、一堆不怎么看得解释

show processlist 是显示用户正在运行的线程,需要注意的是,除了 root 用户能看到所有正在运行的线程外,其他用户都只能看到自己正在运行的线程,看不到其它用户正在运行的线程。除非单独个这个用户赋予了PROCESS 权限。

root用户,可以看到全部线程运行情况

普通的activiti用户只能看到自己的

单独给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

(转)mysql查看连接客户端ip和杀死进程相关推荐

  1. Mac 查看端口占用情况及杀死进程

    在开发中经常会遇到端口占用问题,例如下面,npm start 报的错误: 1. 查看端口占用情况命令 lsof -i tcp:8080 输出结果: 字段说明: 字段名 说明 COMMAND 进程名称 ...

  2. centos(linux) 下如何查看端口占用情况及杀死进程

    使用这个命令:netstat -nap [root@Jaosn sphinx]# netstat -nap Active Internet connections (servers and estab ...

  3. Linux查看日志和关闭、杀死进程命令

    1  -----Linux查看tomcat日志命令: cd    /:切换到根目录 ll:查看根目录下的文件 cd    /data/kafu/log:切换到日志目录 ll:查看日志目录下的文件 ta ...

  4. mysql 查看连接_怎么实时查看mysql当前连接数

    如何实时查看mysql当前连接数? 1.查看当前所有连接的详细资料: ./mysqladmin -uadmin -p -h10.140.1.1 processlist 2.只查看当前连接数(Threa ...

  5. mysql 查看连接_MySql如何查看连接数和状态?

    如何查看mysql数据库的连接数和状态 怎么进入mysql命令行呢? mysql的安装目录下面有个bin目录,先用命令行进入该目录,然后用 mysql -uroot -p123456 来登录(注意:用 ...

  6. mac下查看mysql端口被占用_MAC下查看端口占用并杀死进程

    Eclipse在Run on Server时,Tomcat是开启的,但是报错,显示8080.8005和8009端口被占用 终端输入 查看所有开启的端口 sudo lsof -i -P | grep - ...

  7. 查询所有连接到ORACLE服务器的客户端IP地址的方法

    [说明] Oracle中通过v$session表中的OSUSER和MACHINE字段可以查看当前客户端登陆连接的"操作系统名称"和"机器名",但没能查看到客户端 ...

  8. mysql 记录客户端ip_MySQL查看所有连接的客户端ip

    有时候我们需要查看当前的mysql数据库中, 有哪些客户端保持了连接, 每个客户端分别保持了多少连接,可以使用下面的语句查询结果,可以直观的看到连接数. SELECT substring_index( ...

  9. mysql 查询数据库ip_如何查看连接MYSQL数据库的IP信息

    我们通常情况下要统计数据库的连接数指的是统计总数,没有细分到每个IP上.现在要监控每个IP的连接数,实现方式如下: 方法一: 复制代码 代码如下:select SUBSTRING_INDEX(host ...

最新文章

  1. mysql5.7 only_full_group_by_MySQL5.7默认打开ONLY_FULL_GROUP_BY模式问题与解决方案
  2. 3、面向对象-继承-多态
  3. ggplot2 | 注释函数
  4. matlab共享变量,matlab如何编写共享参数拟合程序 - 程序语言 - 小木虫 - 学术 科研 互动社区...
  5. arcgis python 教程-按区域消除--arcgis python实例教程
  6. 学python需要什么基础-学习Python需要哪些基础知识?
  7. Ovi Store标志着App store模式大战正式开启
  8. 关于C#操作WPS和office兼容性的问题
  9. T1089 三人行必有我师
  10. 模式识别技术是人工智能的基础技术,模式识别技术的发展潜力
  11. Compose 实现下拉刷新和上拉加载
  12. 架构师日记——VCL介绍和使用
  13. 使用cert-manager给阿里云的DNS域名授权SSL证书
  14. # Python第一节课
  15. idea generated-requests.http 表单请求示例
  16. 电大计算机科学与技术专业论文,国家开放大学计算机科学与技术专业毕业设计(论文)要求...
  17. [Python笔记_1] Python基础知识要点
  18. SE14造成表丢失后找回数据
  19. 关于esxi主机上vm无法ping通edge网关设备ip的处理
  20. RSS,Feed和抓虾_转

热门文章

  1. 经典二分:秦腾与教学评估
  2. Canada Cup 2016 C. Hidden Word 字符串构造
  3. Codeforces Round #246 (Div. 2) D. Prefixes and Suffixes kmp + dp
  4. CF1208D Restore Permutation
  5. 2020 ICPC NAC
  6. 【蓝桥杯】 2018年国赛 矩阵求和
  7. P2761 软件补丁问题
  8. YBTOJ洛谷P3750:分手是祝愿(期望dp)
  9. P5025-[SNOI2017]炸弹【tarjan,线段树优化建图】
  10. A*,IDA*—高档次的暴搜