-
Waiting for table metadata lock 대처방법프로그래밍/DB 2017. 12. 25. 00:48728x90반응형
간혹 테이블을 수정하려고 할 때 이상하게 오래 걸려서 show processlist를 쳐보면
작업의 status가 Wating for table metadata lock 일 경우가 있습니다.
말 그대로 현재 metadata 가 lock이 걸려있는 상태라서 작업이 수행되지 못하고 있는 상태인데
이것을 해결하기 위해서는 lock이 걸려있는 process를 강제로 종료하면 됩니다.
일단 mysql command 창에서 show full processlist를 쳐서 전체 프로세스를 확인하고
현재 오래 걸리고 있는 process id 이전에 있는 프로세스들 중 의심이 가는 프로세스를 kill process id 를 쳐서 종료시킵니다.
아래와 같이 기존 프로세스를 종료시켰더니 곧바로 변경사항이 수정되었습니다.
mysql> SHOW FULL PROCESSLIST;+--------+------------+-----------------+------------+---------+------+---------------------------------+-----------------------------------------------------------------------------------------------+| Id | User | Host | db | Command | Time | State | Info |+--------+------------+-----------------+------------+---------+------+---------------------------------+-----------------------------------------------------------------------------------------------+| 200609 | lla*** | localhost | realestate | Sleep | 4729 | | NULL || 200657 | r*** | localhost | realestate | Query | 0 | starting | SHOW FULL PROCESSLIST || 200667 | p**** | localhost | NULL | Sleep | 1255 | | NULL || 200668 | r*** | localhost | realestate | Query | 1255 | Waiting for table metadata lock | ALTER TABLE `Table` CHANGE `column1` `column1` DECIMAL(10,2) NULL DEFAULT NULL |+--------+------------+-----------------+------------+---------+------+---------------------------------+-----------------------------------------------------------------------------------------------+4 rows in set (0.00 sec)mysql> kill 200609;Query OK, 0 rows affected (0.00 sec)728x90반응형'프로그래밍 > DB' 카테고리의 다른 글
postgreSQL 데이터 디렉토리 변경 (0) 2018.03.02 phppgAdmin에서 postgreSQL 데이터베이스 복사하기 & 에러 처리 (0) 2018.02.20 mysql int 타입 최대/최소 값 (0) 2017.10.01 mysql 두 개의 테이블 데이터 사용하기 예시들 (0) 2017.09.30 리눅스와 mysql의 max_open_file 사이즈 변경하기 (1) 2017.05.21