Chúng ta có thể kill các tiến trình bằng lệnh KILL. Tuy nhiên, bạn cần kill từng tiến trình một vì MySQL không có lệnh kill hàng loạt.
Kiểm tra các tiến trình đang chạy
Sử dụng SHOW PROCESSLIST để xem danh sách tiến trình:
mysql> SHOW PROCESSLIST;
Kết quả mẫu:
+----+-----------------+-----------------+------+---------+------+------------------------+------------------+ | Id | User | Host | db | Command | Time | State | Info | +----+-----------------+-----------------+------+---------+------+------------------------+------------------+ | 4 | event_scheduler | localhost | NULL | Daemon | 7986 | Waiting on empty queue | NULL | | 8 | root | localhost:65180 | test | Query | 0 | starting | show processlist | +----+-----------------+-----------------+------+---------+------+------------------------+------------------+ 2 rows in set (0.00 sec)
Kill tiến trình chạy quá 10 giây
Truy vấn sau tạo câu lệnh KILL cho tiến trình có Id = 4:
mysql> SELECT CONCAT('KILL ', 4, ';')
-> FROM INFORMATION_SCHEMA.PROCESSLIST
-> WHERE TIME > 10;
Kết quả:
+-----------------------+
| CONCAT('KILL ',4,';') |
+-----------------------+
| KILL 4; |
+-----------------------+
1 row in set (0.00 sec)
Phương pháp thay thế: Kill hàng loạt qua command line
Bạn có thể thử truy vấn sau để kill tất cả tiến trình:
mysql -e "SHOW FULL PROCESSLIST;" -ss | awk '{print "KILL "$1";"}' | mysql