在使用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)相关术语:navicat for mysql mysql workbench mysql数据库 mysql 存储过程 mysql安装图解 mysql教程 mysql 管理工具

主题: MySQLSQLRYTICTI数据
分页:12
转载请注明
本文标题:Mysql使用kill命令解决死锁问题(杀死某条正在执行的sql语句)
本站链接:http://www.codesec.net/view/557351.html
分享请点击:


1.凡CodeSecTeam转载的文章,均出自其它媒体或其他官网介绍,目的在于传递更多的信息,并不代表本站赞同其观点和其真实性负责;
2.转载的文章仅代表原创作者观点,与本站无关。其原创性以及文中陈述文字和内容未经本站证实,本站对该文以及其中全部或者部分内容、文字的真实性、完整性、及时性,不作出任何保证或承若;
3.如本站转载稿涉及版权等问题,请作者及时联系本站,我们会及时处理。
登录后可拥有收藏文章、关注作者等权限...
技术大类 技术大类 | 数据库(mysql) | 评论(0) | 阅读(67)