>데이터 베이스 >MySQL 튜토리얼 >MySQL의 교착 상태 문제를 해결하기 위해 kill 명령을 사용하는 방법에 대한 자세한 설명

MySQL의 교착 상태 문제를 해결하기 위해 kill 명령을 사용하는 방법에 대한 자세한 설명

黄舟
黄舟원래의
2017-06-18 10:45:062290검색

이 글에서는 주로 Mysql kill 명령을 사용하여 교착 상태 문제(실행 중인 sql 문 죽이기)를 해결하는 방법에 대한 정보를 소개합니다. 필요한 친구는 이를 참고할 수 있습니다.

mysql을 사용하여 특정 문을 실행하는 경우 데이터 양이 너무 많고 반영이 되지 않아 교착 상태가 발생합니다. 이때 리소스를 소비하는 쿼리 문을 종료해야 합니다. KILL 명령의 구문 형식은 다음과 같습니다.


KILL [CONNECTION | QUERY] thread_id

mysqld에 대한 각 연결은 독립적인 스레드에서 실행됩니다. SHOW를 사용할 수 있습니다. 어떤 스레드가 실행 중인지 확인하고 KILL thread_id 문을 사용하여 스레드를 종료합니다.

KILL은 선택적 CONNECTION 또는 QUERY 수정자를 허용합니다. KILL CONNECTION은 수정자가 없는 KILL과 동일합니다. 지정된 thread_id와 관련된 연결을 종료합니다. KILL QUERY는 현재 연결에서 실행 중인 명령문을 종료하지만 연결은 그대로 유지합니다.

PROCESS 권한이 있으면 모든 스레드를 볼 수 있습니다. 최고 관리자 권한이 있으면 모든 스레드와 명령문을 종료할 수 있습니다. 그렇지 않으면 자신의 스레드와 명령문만 보고 종료할 수 있습니다. mysqladmin processlist 및 mysqladmin kill 명령을 사용하여 스레드를 확인하고 종료할 수도 있습니다.

먼저 MySQL에 로그인한 다음 show processlist를 사용하여 현재 mysql에 있는 각 스레드의

상태를 확인하세요.


mysql> show processlist; 
+------+------+----------------------+----------------+---------+-------+-----------+---------------------  
| Id  | User | Host         | db       | Command | Time | State   | Info 
+------+------+----------------------+----------------+---------+-------+-----------+---------------------  
| 7028 | root | ucap-devgroup:53396 | platform    | Sleep  | 19553 |      | NULL  
| 8352 | root | ucap-devgroup:54794 | platform    | Sleep  | 4245 |      | NULL 
| 8353 | root | ucap-devgroup:54795 | platform    | Sleep  |   3 |      | NULL 
| 8358 | root | ucap-devgroup:62605 | platform    | query  | 4156 | updating | update t_shop set |

위는 현재 실행 중인 SQL 문 목록을 보여주며, 가장 많은 리소스를 소비하는 문에 해당하는 ID를 찾습니다.

그런 다음 명령 형식은 다음과 같습니다.



kill id; 
- 示例: 
kill 8358

캔을 죽여라.

위 내용은 MySQL의 교착 상태 문제를 해결하기 위해 kill 명령을 사용하는 방법에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.