概括:
通過 show processlist; 查看state狀態

若發現 有 lock 狀態的,則差用以下命令殺死進程
kill id
id為截圖中的id,實際為進程id
以上2個語句可在navicat操作界面中執行。
以下為參考文章信息:
1、查看進程列表, 找到ID
show processlist;
+--------+--------+--------------------+----------+---------+------+----------+------------------+
| Id | User | Host | db | Command | Time | State | Info |
+--------+--------+--------------------+----------+---------+------+----------+------------------+
| 8 | remote | 10.16.30.96:36592 | activity | Sleep | 239 | | NULL |
| 396749 | remote | 172.17.1.122:53028 | activity | Sleep | 1966 | | NULL |
| 397104 | remote | 172.17.3.211:52666 | activity | Sleep | 7 | | NULL |
| 397177 | remote | 172.17.3.211:52819 | activity | Sleep | 7366 | | NULL |
| 397267 | remote | 172.17.1.122:55728 | activity | Sleep | 5741 | | NULL |
| 397268 | remote | 172.17.1.122:55730 | activity | Sleep | 7849 | | NULL |
| 397287 | remote | 172.17.3.150:57151 | activity | Sleep | 7128 | | NULL |
| 397294 | remote | 172.17.3.68:53158 | activity | Sleep | 2882 | | NULL |
| 397296 | remote | 172.17.3.68:53160 | NULL | Sleep | 6492 | | NULL |
2、 查詢語句把表鎖住了, 趕緊找出第一個Locked的thread_id, 在MySQL的shell里面執行.
kill id
#!/bin/bash
mysql - u root - e " show processlist " | grep - i " Locked " >> locked_log . txt
原文:https://blog.csdn.net/xiaolyuh123/article/details/62044794/
for line in ` cat locked_log.txt | awk '{print $1 }' `
do
echo " kill $line ; " >> kill_thread_id . sql
done
現在kill_thread_id.sql的內容像這個樣子
kill 66402982 ;
kill 66402983 ;
kill 66402986 ;
kill 66402991 ;
.....
好了, 我們在mysql的shell中執行, 就可以把所有鎖表的進程殺死了.
mysql > source kill_thread_id . sql
當然了, 也可以一行搞定
for id in `mysqladmin processlist | grep -i locked | awk '{print $1}'`
do
mysqladmin kill ${id}
done
;
————————————————
版權聲明:本文為CSDN博主「xiaolyuh123」的原創文章,遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/xiaolyuh123/article/details/62044794/
更多分享,請大家關注我的個人公眾號:

