간혹 특정 프로그램에서 실행한 쿼리가 잘못되어 데이터베이스 서버 전체가 먹통이 되는 경우가 생길 수 있습니다.
정체를 알 수 없는 상황에서의 이런 현상은 원인을 잡아내기가 힘들죠. 하지만 그냥 문제가 되는 쿼리(보통 이런 문제는 두가지 쿼리가 서로의 종료를 기다리며 발생하는 데드락 현상이 많습니다)를 바로 죽이면 해결됩니다.
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의 값을 인자로 사용하시면 잠시 후 해당 쿼리가 강제로 중단됩니다.