這篇文章給大家介紹MySQL如何使用kill命令解決死鎖問題,內(nèi)容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。
我們提供的服務有:網(wǎng)站制作、網(wǎng)站設計、微信公眾號開發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認證、政和ssl等。為1000+企事業(yè)單位解決了網(wǎng)站和推廣的問題。提供周到的售前咨詢和貼心的售后服務,是有科學管理、有技術(shù)的政和網(wǎng)站制作公司
在使用mysql運行某些語句時,會因數(shù)據(jù)量太大而導致死鎖,沒有反映。這個時候,就需要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會終止連接當前正在執(zhí)行的語句,但是會保持連接的原狀。
如果您擁有PROCESS權(quán)限,則您可以查看所有線程。如果您擁有超級管理員權(quán)限,您可以終止所有線程和語句。否則,您只能查看和終止您自己的線程和語句。您也可以使用mysqladmin processlist和mysqladmin kill命令來檢查和終止線程。
首先登錄MySQL,然后使用: show processlist; 查看當前mysql中各個線程狀態(tài)。
1 mysql> show processlist;
2 +------+------+----------------------+----------------+---------+-------+-----------+---------------------
3 | Id | User | Host | db | Command | Time | State | Info
4 +------+------+----------------------+----------------+---------+-------+-----------+---------------------
5 | 7028 | root | ucap-devgroup:53396 | platform | Sleep | 19553 | | NULL
6 | 8352 | root | ucap-devgroup:54794 | platform | Sleep | 4245 | | NULL
7 | 8353 | root | ucap-devgroup:54795 | platform | Sleep | 3 | | NULL
8 | 8358 | root | ucap-devgroup:62605 | platform | query | 4156 | updating | update t_shop set |
以上顯示出當前正在執(zhí)行的sql語句列表,找到消耗資源最大的那條語句對應的id.
然后運行kill命令,命令格式如下:
1 kill id;
2 - 示例:
3 kill 8358
殺掉即可。
關于Mysql如何使用kill命令解決死鎖問題就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。