Mysql使用kill命令解决死锁问题(杀死某条正在执行的sql语句)
這篇文章主要介紹了Mysql使用kill命令解決死鎖問題(殺死某條正在執行的sql語句)的相關資料,需要的朋友可以參考下
在使用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 2 3 4 5 6 7 8 | 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命令,命令格式如下:?
?
| 1 2 3 | kill id; - 示例: kill 8358 |
殺掉即可。
來源:https://www.jb51.net/article/116087.htm
總結
以上是生活随笔為你收集整理的Mysql使用kill命令解决死锁问题(杀死某条正在执行的sql语句)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 股票中签是啥意思
- 下一篇: 太极实业半导体做什么的