mysql kill process解決死鎖-

概括:
通過 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/

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章