• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    Mysql使用kill命令解决死锁问题(杀死某条正在执行的sql语句)

    在使用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中替代null的IFNULL()与COALESCE()函数详解
    下一篇:MySQL 压缩的使用场景和解决方案
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

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