[MySQL] 실행중인 쿼리 콘솔에서 중단시키기

간혹 특정 프로그램에서 실행한 쿼리가 잘못되어 데이터베이스 서버 전체가 먹통이 되는 경우가 생길 수 있습니다.

정체를 알 수 없는 상황에서의 이런 현상은 원인을 잡아내기가 힘들죠. 하지만 그냥 문제가 되는 쿼리(보통 이런 문제는 두가지 쿼리가 서로의 종료를 기다리며 발생하는 데드락 현상이 많습니다)를 바로 죽이면 해결됩니다.

mysql> SHOW PROCESSLIST;
+----+--------+--------------+---------+---------+------+-------+-------------
| Id | User   | Host         | db      | Command | Time | State | Info        
+----+--------+--------------+---------+---------+------+-------+-------------
|  5 | root   | localhost    | STARPL3 | Query   | 2048 | init  | INSERT INTO ...
| 13 | root   | localhost    | NULL    | Query   |    0 | NULL  | show processlist
| 14 | lapoly | Canopus:3750 | STARPL3 | Sleep   |  160 |       | NULL        
| 15 | lapoly | Canopus:3751 | NULL    | Sleep   |  386 |       | NULL        
+----+--------+--------------+---------+---------+------+-------+-------------
4 rows in set (0.00 sec)

딱 보았을때 INSERT INTO 쿼리문의 Time을 보니 엄청나게 오랜 시간이 걸리는 쿼리문이라는것을 알 수 있습니다.

저것을 죽일려면 KILL 명령을 사용하시면 됩니다. [참고]

mysql> KILL 5

앞에 나와있는 Id의 값을 인자로 사용하시면 잠시 후 해당 쿼리가 강제로 중단됩니다.