MySQL 쿼리 실행을 중지하려면 어떻게 해야 합니까?
접속처mysql사용할 수 있습니다.가끔 저는 이 프로그램을SELECT너무 큰 쿼리입니다.인쇄도 하고 인쇄도 하고 내 말은 그게 아니란 걸 이미 알고 있어.질문을 중지하고 싶습니다.
때리다Ctrl+C(두세 번) 살인하다mysql완전히 날 셸로 데려가서 다시 연결해야 해
살인하지 않고 질의를 멈출 수 있나요?mysql그 자체?
mysql> show processlist;
+----+------+-----------+-----+---------+------+---------------------+------------------------------+----------+
| Id | User | Host | db | Command | Time | State | Info | Progress |
+----+------+-----------+-----+---------+------+---------------------+------------------------------+----------+
| 14 | usr1 | localhost | db1 | Query | 0 | starting | show processlist | 0.000 |
| 16 | usr1 | localhost | db1 | Query | 94 | Creating sort index | SELECT `tbl1`.* FROM `tbl1` | 0.000 |
+----+------+-----------+-----+---------+------+---------------------+------------------------------+----------+
2 rows in set (0.000 sec)
mysql> kill 16;
Query OK, 0 rows affected (0.004 sec)
mysql> show processlist;
+----+------+-----------+-----+---------+------+----------+------------------+----------+
| Id | User | Host | db | Command | Time | State | Info | Progress |
+----+------+-----------+-----+---------+------+----------+------------------+----------+
| 14 | usr1 | localhost | db1 | Query | 0 | starting | show processlist | 0.000 |
+----+------+-----------+-----+---------+------+----------+------------------+----------+
1 row in set (0.000 sec)
덧붙이기 위해서
KILL QUERY **Id**여기서 Id는 접속 ID입니다.show processlist
는, 통상, 일부의 애플리케이션으로부터 실행할 때에 접속을 종료하지 않는 경우에 적합합니다.
자세한 내용은 mysql 문서를 참조하십시오.
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
프로세스를 종료하려면 다음 명령을 실행해야 합니다.죽이려는 프로세스의 ID를 찾습니다.
> show processlist;
id 열에서 값을 가져와서 다음 명령을 실행합니다.
kill query <processId>;
Query 파라미터는 쿼리 명령어프로세스를 종료해야 함을 지정합니다.
Kill 프로세스의 구문은 다음과 같습니다.
KILL [CONNECTION | QUERY]프로세스 list_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문의합니다.
언급URL : https://stackoverflow.com/questions/3787651/how-can-i-stop-a-running-mysql-query
'programing' 카테고리의 다른 글
| Python에서 텍스트 파일의 파일 내용을 지우려면 어떻게 해야 하나요? (0) | 2022.10.31 |
|---|---|
| Java에서 pass by reference와 동등한 작업을 수행하는 방법 (0) | 2022.10.23 |
| TypeScript, 사전을 통한 루프 (0) | 2022.10.23 |
| 목록에서 최대값의 모든 위치를 찾으려면 어떻게 해야 합니까? (0) | 2022.10.23 |
| HTML5 WebSockets보다 AJAX의 긴/짧은 폴링은 어떤 상황에서 선호됩니까? (0) | 2022.10.23 |