본문 바로가기

개발 이야기/기타

[mysql] safe mode 해제 및 설정

간혹 mysql 워크벤치에서 update 나 delete를 하려고 할 때 아래와 같은 에러 메시지와 실행이 되지 않는 경우가 있다.

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 Queries and reconnect.

테이블에서 키값을 이용한 update 나 delete를 허용하는데 넓은 범위의 데이터를 수정하려고 할 때 발생하며,

워크벤치에서 사용자의 실수를 줄이고자 안전모드를 걸어두지 않았나 싶다.

해결 방법으로는 해당 옵션을 꺼주는 것으로 방법은 두가지가 있다. 

 

1. 워크벤치의 UI창을 이용한 옵션 설정(해당 옵션 변경시 영구적으로 설정이 반영된다.)

MySQL Workbench -> Edit -> Prederences... -> SQL Editor 탭에 있는

Safe Updates (rejects UPDATEs and DELETEs with on restrictions) 항목 체크 해제 후 저장

 

2. 쿼리를 사용하여 옵션을 변경하는 방법(해당 방법은 정확히 어느 시점인지는 모르겠으나 한번씩 옵션이 풀리는 듯하다.)

SET SQL_SAFE_UPDATES = 0;

 

어느방법을 사용하던 사용자의 자유지만 나는 귀찮더라도 쿼리를 이용해 필요할 때만 모드를 해제해 사용하는 편이다. 

또한 내가 사용하는 mac버전 워크벤치에는 첫번째 방법의 경로를 찾을 수가 없었다.

 

반대로 safe mode를 재설정하고싶다면 

첫 번째 방법 항목의 체크를 설정해주거나 

두 번째 방법 쿼리의 0을 1로 바꿔주면 된다.

ex) SET SQL_SAFE_UPDATES = 1;

 

'개발 이야기 > 기타' 카테고리의 다른 글

[linux] 데몬(Daemon)이란  (0) 2019.04.07
[mysql]트랜잭션  (0) 2019.01.31
[mysql] 계정 관리 및 권한 설정  (0) 2017.11.03
Mac에서 Redis 설치  (0) 2017.10.17
리눅스에서 파일 찾기 명령어 find  (0) 2017.09.14