
MySQL에서 테이블이 삭제되지 않는 현상이 발생했다.
drop table test;
테이블이 많지는 않았는데, 참조 관계가 없는 테이블들은 삭제가 되었으나!
참조 관계로 엮여 있는 것들은, 우선 삭제해야 할 테이블을 삭제해도 삭제가 되질 않았다.
'delete from test;' 데이터 삭제 또한 되질 않았다.
처음에 사용했던 방법
-- 참조키 비활성화
SET foreign_key_checks = 0;
-- 테이블 삭제
delete table test;
-- 참조키 활성화
SET foreign_key_checks = 1;
참조 관계 때문에 생긴 거라면, 우선은 테이블 삭제가 필요해서!
참조키 비활성화 후, 테이블을 삭제를 진행하려고 했다.
하지만 이것도 전혀 먹히질 않았다.
ctrl + enter를 치는 순간, 무한 로딩에 걸렸다.
두 번째 사용한 방법 (해결)
위 티스토리 글을 참고하여 해결했다.
show processlist;
위 명령어로 입력하면!

프로세스를 확인할 수 있다.
'State'를 보면 'lock'이라는 단어가 들어간 상태값이 들어가는 것들이 있다.
처음에는 그것만 삭제를 했었다.
kill 4765;
예를 들어 이런 식으로 말이다.
하지만 그것만 삭제해서는 문제가 해결되지 않았다.
그래서 State 값에 'init'이 있는 것을 제외한 나머지를 모두 삭제했다.
'kill' 명령어로 id 값 넣어서 삭제하면 된다.
이렇게 한 후로 문제가 해결되었다.
참조 관계가 쉽지 않고, 이에 대해 더 공부해야겠다고 느꼈다.
어차피 테이블은 날릴 거였어서, 큰 상관은 없었지만?
만약 실제로 운영중인 테이블이었으면.. (아찔이다.)
역시 쉬운 건 없고, 계속 새로운 것을 배워간다.
300x250
'SOMEDAY > NEED' 카테고리의 다른 글
[Git] 윈도우에 깃 설치 (0) | 2024.02.25 |
---|---|
[클라우드] 시큐리티 그룹 인바운드/아웃바운드 정책 (0) | 2024.02.19 |
[PuTTY] PuTTYgen 사용해서 ssh 키 생성 (퍼블릭키, 프라이빗키) (0) | 2024.02.15 |
[Jenkins] 젠킨스 빌드 에러 org.codehaus.groovy.control.ErrorCollector.failIfErrors(ErrorCollector.java:309) (0) | 2024.02.13 |
[Jenkins] 메이븐 프로젝트 파이프라인 스크립트 재작성 (0) | 2024.02.13 |