主页 > 知识库 > Mysql使用kill命令解决死锁问题(杀死某条正在执行的sql语句)

Mysql使用kill命令解决死锁问题(杀死某条正在执行的sql语句)

热门标签:呼叫中心市场需求 服务外包 网站排名优化 铁路电话系统 AI电销 Linux服务器 地方门户网站 百度竞价排名

在使用mysql运行某些语句时,会因数据量太大而导致死锁,没有反映。这个时候,就需要kill掉某个正在消耗资源的query语句即可, KILL命令的语法格式如下:

KILL [CONNECTION | QUERY] thread_id

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

KILL允许自选的CONNECTION或QUERY修改符:KILL CONNECTION与不含修改符的KILL一样:它会终止与给定的thread_id有关的连接。KILL QUERY会终止连接当前正在执行的语句,但是会保持连接的原状。

如果您拥有PROCESS权限,则您可以查看所有线程。如果您拥有超级管理员权限,您可以终止所有线程和语句。否则,您只能查看和终止您自己的线程和语句。您也可以使用mysqladmin processlist和mysqladmin kill命令来检查和终止线程。

首先登录MySQL,然后使用: show processlist; 查看当前mysql中各个线程状态。

mysql> show processlist; 
+------+------+----------------------+----------------+---------+-------+-----------+---------------------  
| Id  | User | Host         | db       | Command | Time | State   | Info 
+------+------+----------------------+----------------+---------+-------+-----------+---------------------  
| 7028 | root | ucap-devgroup:53396 | platform    | Sleep  | 19553 |      | NULL  
| 8352 | root | ucap-devgroup:54794 | platform    | Sleep  | 4245 |      | NULL 
| 8353 | root | ucap-devgroup:54795 | platform    | Sleep  |   3 |      | NULL 
| 8358 | root | ucap-devgroup:62605 | platform    | query  | 4156 | updating | update t_shop set | 

以上显示出当前正在执行的sql语句列表,找到消耗资源最大的那条语句对应的id.

然后运行kill命令,命令格式如下: 

kill id; 
- 示例: 
kill 8358 

杀掉即可。

您可能感兴趣的文章:
  • 详解MySQL kill 指令的执行原理
  • MySQL kill指令使用指南
  • Mysql误删数据解决方案及kill语句原理
  • MySQL Slave 触发 oom-killer解决方法
  • MySQL OOM 系列三 摆脱MySQL被Kill的厄运
  • MySQL OOM 系统二 OOM Killer
  • percona-toolkit之pt-kill 杀掉mysql查询或连接的方法
  • 批量 kill mysql 中运行时间长的sql
  • MySQL kill不掉线程的原因

标签:衡水 黄山 湘潭 兰州 湖南 崇左 铜川 仙桃

巨人网络通讯声明:本文标题《Mysql使用kill命令解决死锁问题(杀死某条正在执行的sql语句)》,本文关键词  ;如发现本文内容存在版权问题,烦请提供相关信息告之我们,我们将及时沟通与处理。本站内容系统采集于网络,涉及言论、版权与本站无关。
  • 相关文章
  • 收缩
    • 微信客服
    • 微信二维码
    • 电话咨询

    • 400-1100-266