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

MySQL 쿼리 실행을 중지하려면 어떻게 해야 합니까?

<시간/>

MySQL의 실행 중인 쿼리를 중지하기 전에 먼저 show 명령을 사용하여 몇 개의 프로세스가 실행되고 있는지 확인해야 합니다.

이에 대한 쿼리는 다음과 같이 제공됩니다. -

mysql> show processlist;

위의 쿼리를 실행한 후 일부 ID가 포함된 출력을 얻을 수 있습니다. 이것은 다음과 같이 주어집니다 -

+----+-----------------+-----------------+----------+---------+-------+------------------------+------------------+
| Id | User | Host | db | Command | Time | State | Info |
+----+-----------------+-----------------+----------+---------+-------+------------------------+------------------+
| 4 | event_scheduler | localhost | NULL | Daemon | 71034 | Waiting on empty queue |
NULL |
| 8 | Manish | localhost:53496 | business | Query | 0 | starting |show processlist|
+----+-----------------+-----------------+----------+---------+-------+------------------------+------------------+
2 rows in set (0.00 sec)

위의 출력에서 ​​알 수 있듯이 현재 사용중인 db는 'business'입니다. id는 8입니다. 쿼리를 중지하려면 프로세스 목록에 있는 주어진 id와 함께 명령 호출을 사용할 수 있습니다. 이에 대한 구문은 다음과 같습니다 -

call mysql.rds_kill(valueOfGivenIdInProcesslist);

이제 위의 구문이 쿼리에 적용되고 valueOfGivenIdInProcesslist가 8로 지정됩니다. 이는 다음과 같습니다. -

mysql> CALL mysql.rds_kill(8);

위의 쿼리를 실행한 후 다음과 같은 출력을 얻습니다. -

ERROR 2013 (HY000): Lost connection to MySQL server during query

이는 위의 쿼리 실행이 중지될 때 발생합니다. use 명령은 중지되었는지 여부를 확인하는 데 사용됩니다. 이에 대한 구문은 다음과 같습니다 -

use yourDatabaseName;

위의 구문은 시스템의 mydatabase 이름 'business'에 적용됩니다. 쿼리는 다음과 같습니다 -

mysql> use business;

위의 쿼리를 실행한 후 다음과 같은 출력을 얻습니다. -

No connection. Trying to reconnect...
Connection id: 10
Current database: *** NONE ***



Database changed
mysql>

따라서 MySQL에서 "Trying toreconnect..."라는 메시지가 나오므로 쿼리가 중지된 것이 분명합니다. 또한 현재 데이터베이스가 "없음"임을 보여줍니다. 잠시 후 데이터베이스와의 연결이 재개됩니다.