以下内容来自mysql手册:

13.5.5.3. KILL语法

KILL [CONNECTION | QUERY] thread_id

每个与mysqld的连接都在一个独立的线程里运行,您可以使用SHOW PROCESSLIST语句查看哪些线程正在运行,并使用KILL thread_id语句终止一个线程。

KILL允许自选的CONNECTION或QUERY修改符:

· KILL CONNECTION与不含修改符的KILL一样:它会终止与给定的thread_id有关的连接。

· KILL QUERY会终止连接当前正在执行的语句,但是会保持连接的原状。

如果您拥有PROCESS权限,则您可以查看所有线程。如果您拥有SUPER权限,您可以终止所有线程和语句。否则,您只能查看和终止您自己的线程和语句。

您也可以使用mysqladmin processlist和mysqladmin kill命令来检查和终止线程。

注释:您不能同时使用KILL和Embedded MySQL Server库,因为内植的服务器只运行主机应用程序的线程。它不能创建任何自身的连接线程。

当您进行一个KILL时,对线程设置一个特有的终止标记。在多数情况下,线程终止可能要花一些时间,这是因为终止标记只会在在特定的间隔被检查:

· 在SELECT, ORDER BY和GROUP BY循环中,在读取一组行后检查标记。如果设置了终止标记,则该语句被放弃。

· 在ALTER TABLE过程中,在每组行从原来的表中被读取前,检查终止标记。如果设置了终止标记,则语句被放弃,临时表被删除。

· 在UPDATE或DELETE运行期间,在每个组读取之后以及每个已更行或已删除的行之后,检查终止标记。如果终止标记被设置,则该语句被放弃。注意,如果您正在使用事务,则变更不会被 回滚。

· GET_LOCK()会放弃和返回NULL。

· INSERT DELAYED线程会快速地刷新(插入)它在存储器中的所有的行,然后终止。

· 如果线程在表锁定管理程序中(状态:锁定),则表锁定被快速地放弃。

· 如果在写入调用中,线程正在等待空闲的磁盘空间,则写入被放弃,并伴随"disk full"错误消息。

· 警告:对MyISAM表终止一个REPAIR TABLE或OPTIMIZE TABLE操作会导致出现一个被损坏的没有用的表。对这样的表的任何读取或写入都会失败,直到您再次优化或修复它(不中断)。

1、通过information_schema.processlist表中的连接信息生成需要处理掉的MySQL连接的语句临时文件,然后执行临时文件中生成的指令

mysql> select concat('KILL',id,';') from information_schema.processlist where user='root';+------------------------+

| concat('KILL',id,';')+------------------------+

| KILL 3101;| KILL 2946;+------------------------+

2 rows in set (0.00sec)

mysql>select concat('KILL',id,';') from information_schema.processlist where user='root' into outfile '/tmp/a.txt';

Query OK,2 rows affected (0.00sec)

mysql>source /tmp/a.txt;

Query OK,0 rows affected (0.00 sec)

2、

杀掉当前所有的MySQL连接

mysqladmin -uroot -p processlist|awk -F "|" '{print $2}'|xargs -n 1 mysqladmin -uroot -p kill

杀掉指定用户运行的连接,这里为Mike

mysqladmin -uroot -p processlist|awk -F "|" '{if($3 == "Mike")print $2}'|xargs -n 1 mysqladmin -uroot -p kill

3、通过SHEL脚本实现

#杀掉锁定的MySQL连接for id in `mysqladmin processlist|grep -i locked|awk '{print $1}'`domysqladminkill ${id}done

4、通过Maatkit工具集中提供的mk-kill命令进行

#杀掉超过60秒的sql

mk-kill -busy-time 60 -kill#如果你想先不杀,先看看有哪些sql运行超过60秒

mk-kill -busy-time 60 -print

#如果你想杀掉,同时输出杀掉了哪些进程

mk-kill -busy-time 60 -print –kill

mk-kill更多用法可参考:

http://www.maatkit.org/doc/mk-kill.html

http://www.sbear.cn/archives/426

Maatkit工具集的其它用法可参考:

http://code.google.com/p/maatkit/wiki/TableOfContents?tm=6

参考文档:

http://www.google.com

http://www.orczhou.com/index.php/2010/10/kill-mysql-connectio-in-batch/

http://www.mysqlperformanceblog.com/2009/05/21/mass-killing-of-mysql-connections/

mysql kill 脚本_批量 kill mysql 中运行时间长的sql相关推荐

  1. 批量 kill mysql 中运行时间长的sql

    以下内容来自mysql手册: 13.5.5.3. KILL语法 KILL [CONNECTION | QUERY] thread_id 每个与mysqld的连接都在一个独立的线程里运行,您可以使用SH ...

  2. mysql 杀掉连接_批量杀死MySQL连接的几种方法

    方法一 通过information_schema.processlist表中的连接信息生成需要处理掉的MySQL连接的语句临时文件,然后执行临时文件中生成的指令. mysql select conca ...

  3. 脚本_批量修改md为hexo标准post格式[博]

    原创博客地址:脚本_批量修改md为hexo标准post格式[博] 动机,原有md希望快捷发布 本来原来有笔记,已经为md格式,希望批量发布.而不是一个个hexo new page xxx,然后复制过去 ...

  4. 批量 杀掉 mysql 连接_批量杀死MySQL连接的四种方法详解

    方法一 通过information_schema.processlist表中的连接信息生成需要处理掉的MySQL连接的语句临时文件,然后执行临时文件中生成的指令.复制代码 代码如下:mysql> ...

  5. 批量 杀掉 mysql 连接_批量杀死MySQL连接的几种方法

    方法一 通过information_schema.processlist表中的连接信息生成需要处理掉的MySQL连接的语句临时文件,然后执行临时文件中生成的指令. mysql> select c ...

  6. oracle语句mysql数据库名称_查询oracle数据库中当前数据库所有表的名称

    SQL查询数据库中所有指定类型的字段名称和所在的表名 --查询数据库中所有指定类型的字段名称和所在的表名 --eg: 下面查的是当前数据库中 所有字段类型为 nvarchar(max) 的字段名和表名 ...

  7. lnmp mysql自动启动脚本_【转】LNMP配置开机自启动

    编写开机启动脚本: I.nginx开机启动 1.在/etc/init.d/目录下创建脚本 vi /etc/init.d/nginx 2.更改脚本权限 chmod 775 /etc/init.d/ngi ...

  8. 老男孩mysql备份脚本_老男孩-标杆班级-MySQL-lesson07-备份恢复

    如果您对数据库感兴趣,可以添加 DBA解决方案QQ群:855439640 1. 运维在数据库备份恢复方面的职责 1.1 设计备份策略 全备 .增量.时间.自动 1.2 日常备份检查 备份存在性 备份空 ...

  9. mysql update多条件批量更新_Mybatis中进行批量更新(updateBatch)

    更新多条数据,每条数据都不一样 背景描述:通常如果需要一次更新多条数据有两个方式,(1)在业务代码中循环遍历逐条更新.(2)一次性更新所有数据(更准确的说是一条sql语句来更新所有数据,逐条更新的操作 ...

最新文章

  1. Netty面试题 汇总
  2. .net core webapi 部署windows server 2008 r2 笔记
  3. 计算机软件的输出设备有哪些,计算机输出设备有哪些?计算机输出设备介绍
  4. 通讯传输--全双工和半双工
  5. dbms_metadata遇到ORA-31603的解决方案
  6. white-space详解
  7. 无监督︱异常、离群点检测 一分类——OneClassSVM
  8. C#获取程序所在的目录
  9. 2017软件构造3.3
  10. refresh( )
  11. 【opencv 450 Image Processing】Creating Bounding boxes and circles for contours为轮廓创建边界框和圆
  12. 左与AOL合并 右牵手谷歌 雅虎对抗微软收购
  13. 2021-2027全球与中国SD WAN托管服务市场现状及未来发展趋势
  14. JAVA微信开发-新手接入指南
  15. PTA(2019年天梯赛-全国总决赛)----彩虹瓶 (25分)
  16. sm2电子印章结构体
  17. UTNet 用于医学图像分割的混合Transformer
  18. 《唐伯虎点秋香》中的超级对联
  19. Linux物理内存管理——会议室管理员如何分配会议室
  20. skb_copy和skb_clone对比

热门文章

  1. 万能的Seq2Seq:基于Seq2Seq的阅读理解问答
  2. 使用PaddleFluid和TensorFlow实现图像分类网络SE_ResNeXt | 文末超大福利
  3. 蓝桥备赛第三周 倍增+贪心+素数+约数
  4. 丑憨批的html实战
  5. Linux文件系统层次结构
  6. python画图网格线设置_Matplotlib可视化入门,看这一篇就够了
  7. JDK提供的检测工具
  8. php 上传pdf文件损坏,php – 强制下载PDF文件,损坏文件
  9. jmeter生成优美的压力测试报告,jmeter生成html压测报告,jmeter压力测试
  10. mysql limit耗时过长