Computer >> 컴퓨터 >  >> 프로그램 작성 >> MySQL

MySQL "show processlist"의 모든 프로세스를 어떻게 종료합니까?

<시간/>

'kill' 명령을 사용하여 프로세스를 종료할 수 있습니다. 그러나 MySQL에는 대규모 kill 명령이 없기 때문에 해당 프로세스를 하나씩 종료해야 합니다.

얼마나 많은 프로세스가 존재하는지 확인하려면 'show processlist'를 사용하세요.

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