程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> Mysql使用kill命令解決死鎖問題(殺死某條正在執行的sql語句)

Mysql使用kill命令解決死鎖問題(殺死某條正在執行的sql語句)

編輯:MySQL綜合教程

Mysql使用kill命令解決死鎖問題(殺死某條正在執行的sql語句)。本站提示廣大學習愛好者:(Mysql使用kill命令解決死鎖問題(殺死某條正在執行的sql語句))文章只能為提供參考,不一定能成為您想要的結果。以下是Mysql使用kill命令解決死鎖問題(殺死某條正在執行的sql語句)正文


Mysql使用kill命令解決死鎖問題(殺死某條正在執行的sql語句)

作者:huangbaiping

這篇文章主要介紹了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 

殺掉即可。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved