본문 바로가기
SQL/MySQL

MySQL DB LOCK 해결방법

by wakestand 2021. 1. 21.
반응형

MySQL 사용 중 어떤 쿼리를 보내도

그냥 계속 돌기만 하는 경우를

데이터베이스에 락이 걸렸다고 하는데

 

다음 쿼리를 이용해 간단히 해결이 가능하다

 

먼저 SHOW FULL PROCESSLIST; 를 사용해주면

위 스크린샷과 같이 조회가 되는 것이 보이는데

 

여기서 주목해야 할 부분은 Command, Time, State인데

먼저 Command가 Query 상태이면서

Time이 계속 올라가고 있을 경우

Info 열에 해당하는 쿼리가 그냥 오래 돌아가는거다

누가 이렇게 오래 돌리는지 확인한 후

주인이 없으면 해당 행의 ID를 확인한 후

KILL [ID]를 해주면 된다

 

다음은 State가 locked 상태인 경우

DB LOCK이 걸린 상태인데

 

이때는 그냥 락 걸린 행의 ID를 봐준 후

KILL [ID]를 해주면 된다

 

마지막으로 예제에 사용한 쿼리는 아래와 같다

 

SHOW FULL PROCESSLIST; -- 전체 프로세스 확인

KILL [ID]; -- ID에 해당하는 프로세스 삭제
반응형

댓글