今天遇到個情況,一臺php請求到後端數據庫的查詢線程全部堵住了,現在要清除這些線程,又不重啓數據庫,如果用手動kill 'id' 那得執行上千次,不實際,用了一下兩條命令就可以解決問題
SELECT concat('KILL ',id,';') FROM information_schema.processlist WHERE Host like '10.0.0.46%' and Time >10 INTO OUTFILE '/tmp/a.txt';
source /tmp/a.txt
--------------------------------
將來源10.0.0.46和查詢時間大於10秒的id歸檔到文件裏,
cat /tmp/a.txt
KILL 49947505530;
KILL 49946442549;
KILL 49945416819;
KILL 49944470268;
...
最後導入批量執行