在使用mysql運行某些語句時,特別是在客戶端統計數據時,由於數據量大或者統計的sql不會命中索引導致死鎖或者網絡超時客戶端斷開連接。此時需要去服務器上kill掉超時的sql語句防止影響mysql性能。
1. 登錄mysql的服務端
相關命令:mysql -u用戶名 -p -h地址 -P端口
輸入密碼
2. 查看mysql中各個線程的狀況
相關命令:show processlist;
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 |
每個與mysqld的連接都在一個獨立的線程裏運行,您可以使用SHOW PROCESSLIST
語句查看哪些線程正在運行,並使用KILL thread_id
語句終止一個線程。
3. 殺死對應線程
相關命令:kill id
kill 8358