1. 程式人生 > >mysql資料庫殺掉堵塞程序

mysql資料庫殺掉堵塞程序

mysql>SHOW PROCESSLIST;檢視程序;

mysql>KILL ID;殺掉程序;

這是殺掉單一程序,一個一個解決起來太麻煩;

批量解決,匯出到檔案,在匯入處理;

1,

mysql>select CONCAT('KILL ',id,';') FROM information_schema.`PROCESSLIST` where DB = 'finance_49db6118b5b24de792246550429dfb2b';

+------------------------+
| concat('KILL ',id,';')
+------------------------+
| KILL 3101; 


| KILL 2946; 

+------------------------+

2,

mysql>select CONCAT('KILL ',id,';') FROM information_schema.`PROCESSLIST` where DB = 'finance_49db6118b5b24de792246550429dfb2b' INTO OUTFILE'/var/lib/mysql-files/a.txt';

Query OK, 2 rows affected (0.00 sec)

注意:CONCAT('KILL ',id,';')裡 KILL後面有個空格;

INTO OUTFILE 後面的路徑是mysql配置檔案裡配置的路徑,隨意指定路徑會引起許可權問題;

會報這個錯:The MySQL server is running with the --secure-file-priv option so it cannot execute this statement;

可以通過下面命令檢視預設路徑;

mysql>show variables like '%secure%';


如果值為Null就需要到mysql安裝路徑下的my.ini檔案,設定一下路徑:


然後重啟mysql;

3,mysql> source /tmp/a.txt;

Query OK, 0 rows affected (0.00 sec);

我用navicat連線資料庫,匯入檔案不成功,source命令不變色;

後來我發現 何必呢

mysql>select CONCAT('KILL ',id,';') from information_schema.`PROCESSLIST` where DB = 'finance_49db6118b5b24de792246550429dfb2b';


然後點選


全選 複製到執行視窗;


然後 執行;哈哈哈,全部解決;