WORK/DB

mysql 프로세스 확인 및 kill 하기

im 수캥이 2022. 11. 29. 16:07

테이블을 삭제하고 다시 만들어야 할 일이 생겨서 drop 을 하려고 하니 로딩만 되고 drop이 되지 않았다.

혹시몰라 process 확인

show processlist;

 

 

왜 sleep이 이렇게 많지? ;;

sleep 상태에서 시간이 올라가는건

db 를 사용하는 어플리케이션에서 mysql 접속을 한 뒤에 접속세션을 종료하지 않고 그냥 놔두면 발생한다고 한다.

개발자가 나만 있는게 아니니 일단 가장 긴 Time을 가지고 있는 값들만 모두 kill 처리 했다.

kill 명령어

// kill [id입력]
kill 105621; 

그리고 나서 테이블 drop을 하니 정상 drop이 되었다.

 

일정시간 경과 후 자동 세션 종료 설정도 가능하다.

-- 현재 interactive 설정값 조회 (28800 초 이후 interactive 세션들을 정리하게 설정값 확인)
show variables like 'interactive%';

-- 현재 non-interactive 설정값 조회 (28800 초 이후 non-interactive 세션들을 정리하게 설정값 확인)

-- time out 설정 (30초 지나면 끊기도록 설정)
set global interactive_timeout=30;
set global wait_timeout=30;