Computer >> Máy Tính >  >> Lập trình >> MySQL

Làm cách nào để hủy tất cả các quy trình trong MySQL "hiển thị danh sách quy trình"?

Chúng ta có thể giết các tiến trình với sự trợ giúp của lệnh ‘kill’. Tuy nhiên, bạn cần phải giết từng quy trình đó, vì MySQL không có bất kỳ lệnh tiêu diệt lớn nào.

Để kiểm tra xem có bao nhiêu quy trình tồn tại, hãy sử dụng 'hiển thị danh sách quy trình'

mysql> show processlist;

Sau đây là kết quả.

+----+-----------------+-----------------+------+---------+------+------------------------+------------------+
| 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)

Để hủy một quy trình đã hoạt động trong hơn 10 giây, sau đây là truy vấn. Ở đây, chúng tôi đang giết một quy trình với Id “4”

mysql> select concat('kill ',4,';')
   -> from information_schema.processlist
   ->  where TIME > 10;

Đây là kết quả đầu ra.

+-----------------------+once;

| concat('kill ',4,';') |
+-----------------------+
| kill 4;               |
+-----------------------+
1 row in set (0.00 sec)

Như một phương pháp thay thế, bạn vẫn có thể thử truy vấn MySQL sau để loại bỏ tất cả các quy trình.

mysql -e "show full processlist;" -ss | awk '{print "KILL "$1";"}'| mysql