[mysql] 실행중인 MySQL 쿼리를 중지하려면 어떻게해야합니까?

mysqlLinux 쉘에서 연결합니다 . 때때로 나는 SELECT너무 큰 쿼리를 실행합니다 . 그것은 인쇄하고 인쇄하며 이미 이것이 내가 의도 한 것이 아님을 알고 있습니다. 쿼리를 중지하고 싶습니다.

때리면 Ctrl+C(두 번) mysql완전히 죽이고 다시 셸로 돌아 오므로 다시 연결해야합니다.

mysql자체 를 죽이지 않고 쿼리를 중지 할 수 있습니까?



답변

mysql>show processlist;

mysql> kill "number from first col";


답변

그냥 추가

KILL QUERY **Id**
여기서 ID는 연결 ID입니다. show processlist

일반적으로 일부 응용 프로그램에서 실행할 때 연결을 종료하지 않으려는 경우에 더 좋습니다.

자세한 내용은 여기에서 mysql doc을 읽을 수 있습니다


답변

mysql에 연결

mysql -uusername -p  -hhostname

전체 프로세스 목록 표시 :

mysql> show full processlist;
+---------+--------+-------------------+---------+---------+------+-------+------------------+
| Id      | User   | Host              | db      | Command | Time | State | Info             |
+---------+--------+-------------------+---------+---------+------+-------+------------------+
| 9255451 | logreg | dmin001.ops:37651 | logdata | Query   |    0 | NULL  | show processlist |
+---------+--------+-------------------+---------+---------+------+-------+------------------+

특정 쿼리를 종료하십시오. 여기에서 id = 9255451

mysql> kill 9255451;

권한이 거부되면 다음 SQL을 시도하십시오.

CALL mysql.rds_kill(9255451)


답변

mysqladmin런 어웨이 쿼리를 종료하는 데 사용하십시오 .

다음 명령을 실행하십시오.

mysqladmin -uusername -ppassword pr

그런 다음 프로세스 ID를 기록해 두십시오.

mysqladmin -uusername -ppassword kill pid

런 어웨이 쿼리는 더 이상 리소스를 소비하지 않아야합니다.


답변

mysqladmin사용 가능한 경우 다음을 사용하여 쿼리 목록을 얻을 수 있습니다.

> mysqladmin -uUSERNAME -pPASSWORD pr

+-----+------+-----------------+--------+---------+------+--------------+------------------+
| Id  | User | Host            | db     | Command | Time | State        | Info             |
+-----+------+-----------------+--------+---------+------+--------------+------------------+
| 137 | beet | localhost:53535 | people | Query   | 292  | Sending data | DELETE FROM      |
| 145 | root | localhost:55745 |        | Query   | 0    |              | show processlist |
+-----+------+-----------------+--------+---------+------+--------------+------------------+

그런 다음 장기 실행 쿼리를 호스팅하는 mysql 프로세스를 중지 할 수 있습니다.

> mysqladmin -uUSERNAME -pPASSWORD kill 137


답변

프로세스를 종료하려면 다음 명령을 실행해야합니다.

> show processlist;  
> kill query processId;

쿼리 매개 변수는 쿼리 명령 프로세스를 종료해야 함을 지정합니다.

킬 프로세스의 구문은 다음과 같습니다.

킬 [연결 | QUERY] processlist_id

자세한 내용은 이 링크를 참조하십시오.


답변

이 질문의 저자는 일반적으로 MySQL이 출력을 인쇄 한 후에 만 ​​잘못된 쿼리가 실행되었음을 인식한다고 언급합니다. 언급 한 바와 같이,이 경우 Ctrl-C에는 도움이되지 않습니다. 그러나 출력이 인쇄 되기 전에 쿼리 를 잡으면 현재 쿼리가 중단 된다는 것을 알았습니다
. 예를 들면 다음과 같습니다.

mysql> select * from jos_users, jos_comprofiler;

MySQL은 위의 두 테이블의 카티 전 곱 생성으로 바쁘고 곧 MySQL이 화면에 출력을 인쇄하지 않았으므로 (프로세스 상태는 데이터 전송 중 ) 다음과 같이 입력합니다 Ctrl-C.

Ctrl-C -- sending "KILL QUERY 113240" to server ...
Ctrl-C -- query aborted.
ERROR 1317 (70100): Query execution was interrupted

Ctrl-C마찬가지로 UPDATE쿼리 를 중지하는 데 사용할 수 있습니다.