본문 바로가기

IT

MySQL safe mode 해제하기

728x90
반응형
728x170

거두절미하고 mysql에서 safe mode disable 하는 법 먼저 말씀드리겠습니다.

 

2개의 방법이 있는데 우선 빠르게 방법 보여드리고 차이점 설명 드리도록 하겠습니다.

 

1. MySQL safe mode disable with Query

SET SQL_SAFE_UPDATES = 0;  # safe mode disable ( 0 이 OFF 입니다... 0..O.. 로 외우시면 편해요 ! )


SET SQL_SAFE_UPDATES = 1;  # safe mode enable ( 1 이 다시 ON 입니다. )

 

2. MySQL Workbench ( 워크빈치에서 GUI 환경으로 safe mode 해제하는 방법 ) 

1. 최상단 왼쪽에서 Edit 클릭

2. Edit 최하단에서 Preferences 클릭

MySQL Workbench Safe Mode enable GUI

 

3. 뜨는 팝업 창에서 왼쪽 2번째 SQL Editor 클릭

4. 가장 최하단에 Safe Updates (rejects UPDATEs and DELETEs with no restrictions) 체크박스 해제

5. 워크빈치 종료 후 재실행

mysql 워크빈치 세이프 모드 해제하는 방법

 

 

주로 해당하는 방법을 찾으시는 경우는 아래와 같은 오류를 만나셨을 때 일 텐데요.

 

- 오류 코드 1175

Error Code: 1175. You are using safe update mode and you tried to update a table without a WHERE that uses a KEY column.  To disable safe mode, toggle the option in Preferences -> SQL Editor and reconnect.

=> 번역 : 안전한 업데이트 모드를 사용 중이며 KEY 열을 사용하는 WHERE 없이 테이블 업데이트를 시도했습니다. 안전 모드를 비활성화하려면 환경설정 -> SQL 편집기에서 옵션을 전환하고 다시 연결합니다.

 

 

해당 오류를 구글 번역기로 직역만 해도 개발을 해보신 경우 이해하실 텐데요. 처음 mysql을 써보시거나 하면 당황하실 수 있습니다.

 

보통 UPDATE 나 DELETE 문구 같은 데이터를 조작하는 SQL 문구의 경우 WHERE 절을 같이 사용하지 않으면 모든 데이터가 한 번에 지워지거나 변경될 수 있어서 이를 방지하고자 들어가 있는 일종의 안전장치입니다.

 

실제로 현업에서도 바쁘게 일하다 보면 가끔 작성 중이던 쿼리가 실행되거나 미리 만들어둔 쿼리를 복사, 붙여 넣기 하는 과정에서 잘못 붙여 넣기가 되었거나 정말 여러 가지 이유로 일어날 수 있는 일이기도 한데, 한번 잘못 실행되면 매우 돌이키기 어렵고 무시무시한 상황이 될 수 있어서 저 같은 경우도 가능하면 평소에는 켜두는 편입니다.

 

다만 Query로 자주 UPDATE 나 DELTE를 실행하셔야 하는 분들의 경우 오히려 불편하실 수 있어서 이러한 경우에는 safe mode를 꺼두시긴 합니다. ( 보통 이 경우에는 롤백 명령어를 숙지하고 계시긴 합니다만.... 초보 개발자 분들의 경우 가능하면 켜두시길 권장드립니다. )

 

위에 설명드린 1번과 2번 방법은 사실 거의 차이가 없는데요.

결과적으로는 차이가 없어도 다른 점을 굳이 얘기해 보자면

 

2번의 GUI 환경에서 조절하는 경우에는 설명드린 것처럼 워크빈치를 한번 종료 후 재시작을 해주어야만 합니다.

다만 GUI 환경이라서 어렵지도 않고 딱히 명령어를 외우지 않아도 손쉽게 사용 가능하다는 장점이 있습니다.

 

1번 방법인 Query로 조절하시는 경우에는 워크빈치 재실행 없이 바로 사용 가능 하다는 장점이 있습니다만 SQL_SAFE_UPDATES = 0이 OFF(disable) 하는 것인지 SQL_SAFE_UPDATES = 1이 ON(enable) 하는 것인지가 헷갈리실 수 있고 명령어인 SQL_SAFE_UPDATES를 외워야 한다는 단점이 있습니다. 

 

 

728x90
반응형
그리드형