MySQL使用杀命令来解决死锁问题(杀死正在执行的SQL语句)
杀了{ } thread_id |连接查询
每一个连接mysqld运行在一个单独的线程。你可以使用SHOW PROCESSLIST语句看哪个线程正在运行和终止线程使用杀thread_id声明。
杀允许选定的连接或查询修饰符:杀死连接是一样的杀,不包含修饰符:终止一个连接与一个给定的查询,thread_id.kill终止当前正在执行的连接,但它会保持连接的原。
如果你有过程的权限,你可以看看所有的线程。如果你有超级管理员权限,你可以终止所有线程和报表。否则,你只能查看和终止自己的线程和报表。您还可以使用mysqladmin PROCESSLIST和mysqladmin杀命令来检查和终止线程。
首先登录到MySQL,然后使用SHOW PROCESSLIST;看看各个线程在当前MySQL的状态。
MySQL >显示列表;
+ + + + ------ ------ ---------------------- ---------------- + + + + --------------------- ----------- --------- -------
ID用户主机| | | | DB命令状态| | | |信息
+ + + + ------ ------ ---------------------- ---------------- + + + + --------------------- ----------- --------- -------
7028根| | UCAP devgroup:53396平台的睡眠| | | | 19553 | |空
8352根| | UCAP devgroup:54794平台的睡眠| | | | 4245 | |空
8353根| | UCAP devgroup:54795平台的睡眠| | | | 3 | |空
8358根| | UCAP devgroup:62605平台查询| | | | 4156更新的更新t_shop集| | |
上面显示了当前正在执行的SQL语句列表,以查找最大消耗资源的语句的相应ID。
然后,运行命令,命令格式如下所示:
杀了我;
-实例:
杀8358
杀了它。