加入收藏 | 设为首页 | 会员中心 | 我要投稿 源码门户网 (https://www.92codes.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

Mysql如何使用kill命令解决死锁难题

发布时间:2022-01-13 15:06:02 所属栏目:MySql教程 来源:互联网
导读:这篇文章给大家介绍Mysql如何使用kill命令解决死锁问题,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。 在使用mysql运行某些语句时,会因数据量太大而导致死锁,没有反映。这个时候,就需要kill掉某个正在消耗资源的query语句即可
       这篇文章给大家介绍Mysql如何使用kill命令解决死锁问题,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。
 
     在使用mysql运行某些语句时,会因数据量太大而导致死锁,没有反映。这个时候,就需要kill掉某个正在消耗资源的query语句即可, KILL命令的语法格式如下:
 
1 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中各个线程状态。
 
1 mysql> show processlist;
 
2 +------+------+----------------------+----------------+---------+-------+-----------+---------------------  
 
3 | Id  | User | Host         | db       | Command | Time | State   | Info
 
4 +------+------+----------------------+----------------+---------+-------+-----------+---------------------  
 
5 | 7028 | root | ucap-devgroup:53396 | platform    | Sleep  | 19553 |      | NULL
 
6 | 8352 | root | ucap-devgroup:54794 | platform    | Sleep  | 4245 |      | NULL
 
7 | 8353 | root | ucap-devgroup:54795 | platform    | Sleep  |   3 |      | NULL
 
8 | 8358 | root | ucap-devgroup:62605 | platform    | query  | 4156 | updating | update t_shop set |
 
以上显示出当前正在执行的sql语句列表,找到消耗资源最大的那条语句对应的id.
 
然后运行kill命令,命令格式如下:
 
1 kill id;
 
2 - 示例:
 
3 kill 8358
 
杀掉即可。
 
关于Mysql如何使用kill命令解决死锁问题就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

(编辑:源码门户网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!