• 技术文章 >数据库 >mysql教程

    Mysql中关于使用kill命令解决死锁问题详解

    黄舟黄舟2017-06-18 10:45:06原创1094
    这篇文章主要介绍了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命令解决死锁问题详解的详细内容,更多请关注php中文网其它相关文章!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:Mysql kill 命令 使用 关于
    上一篇:MySQL中关于压缩的使用场景和解决方案 下一篇:关于mysql中替代null的IFNULL()与COALESCE()函数详解
    Web大前端开发直播班

    相关文章推荐

    • 带你把MySQL索引吃透了• jquery mobile是什么意思• mysql怎么增加行• mysql怎么删除unique约束• mysql视图与表的区别是什么

    全部评论我要评论

  • 取消发布评论发送
  • 1/1

    PHP中文网