MySQL에서 sql_mode를 영구적으로 설정하는 방법
MySQL의 sql_mode는 서버의 SQL 구문 처리 방식과 동작 규칙을 결정하는 중요한 설정 값입니다. 세션 단위로 변경할 수도 있지만, 서버를 재시작하면 설정이 초기화되기 때문에 영구적으로 적용하려면 설정 파일을 직접 수정해야 합니다.
1단계: 데이터 디렉터리 확인
Windows 운영체제를 사용하고 있다면 먼저 my.cnf 또는 my.ini 파일이 위치한 디렉터리를 확인해야 합니다. MySQL에서 다음 명령어를 실행하면 데이터 디렉터리 경로를 알 수 있습니다.
mysql> select @@datadir;
실행 결과는 다음과 같습니다.
+---------------------------------------------+
| @@datadir |
+---------------------------------------------+
| C:\ProgramData\MySQL\MySQL Server 8.0\Data\ |
+---------------------------------------------+
1 row in set (0.00 sec)
2단계: 설정 파일(my.ini / my.cnf) 찾기
위에서 확인한 경로인 C:\ProgramData\MySQL\MySQL Server 8.0\Data\로 이동합니다. 일반적으로 Windows 환경에서는 my.ini 파일이 해당 위치 또는 MySQL 설치 디렉터리에 존재합니다.
3단계: sql_mode 설정 추가
설정 파일을 텍스트 편집기로 연 뒤, [mysqld] 섹션 아래에 다음과 같이 sql_mode 값을 작성합니다.
sql_mode="TRADITIONAL"
TRADITIONAL 모드는 잘못된 데이터 입력 시 경고 대신 오류를 발생시키는 등 엄격한 동작을 적용하는 모드입니다. 필요에 따라 STRICT_TRANS_TABLES, NO_ENGINE_SUBSTITUTION 등 다른 모드를 조합하여 사용할 수도 있습니다.
4단계: MySQL 서버 재시작
설정 파일을 저장한 후에는 변경 사항을 적용하기 위해 MySQL 서버를 반드시 재시작해야 합니다. Windows에서는 '서비스' 관리자(services.msc)에서 MySQL 서비스를 재시작하거나, 명령 프롬프트에서 다음 명령어를 사용할 수 있습니다.
net stop mysql80
net start mysql80
서버가 정상적으로 재시작되면 sql_mode 설정이 영구적으로 적용됩니다. 아래 명령어로 현재 적용된 값을 확인할 수 있습니다.
mysql> SELECT @@sql_mode;