English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

MySQL '프로세스 목록 표시'에서 모든 프로세스를 어떻게 종료할 수 있나요?

우리는 "kill" 명령어의 도움을 받아 프로세스를 종료할 수 있습니다. 하지만 MySQL에는 대량의 kill 명령어가 없기 때문에, 이 프로세스를 하나씩 죽이셔야 합니다.

프로세스가 얼마나 많이 존재하는지 확인하려면 '프로세스 목록 표시'를 사용하세요.

mysql> show processlist;

이는 출력입니다。

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

활성화된10초 이상의 프로세스가 있으면 다음 쿼리를 실행하세요. 여기서는 ID가 “ 4”의 프로세스

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

이는 출력입니다。

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

대체로, 여전히 다음 MySQL 쿼리를 사용하여 모든 프로세스를 종료할 수 있습니다.

mysql -e "show full processlist;" -ss | awk '{print "KILL "$1";"}'| mysql
추천해드립니다