본문 바로가기
Etc

MariaDB - MySQL Strict Mode is not set for database connection 'default'

by 올엠 2022. 9. 1.
반응형

작은 부분이지만, 추후 오류를 발생시킬 수 있는 부분으로,

MariaDB의 경우 호환성  모드로 동작을 하는데 특정 조건에 맞지 않는 경우 자동으로 판단하여 데이터를 입력하게 된다.

(예, unsigned 컬럼에 -1 이 입력되면 자동으로 0 으로 변환)

이러한 이유가 발생하는 이유는 STRICT_ALL_TABLES, STRICT_TRANS_TABLES  가 꺼져있어서 발생하며, STRICT_ALL_TABLES, STRICT_TRANS_TABLES이 비활성화 되어 있으면 CHAR, VARCHAR 의 크기를 초과하는 데이터 입력시 에러를 발생하지 않고 가능한 크기 만큼 잘라서 넣게 된다.

이는 운영상 위험이 있을 수 있기 때문에 아래와 같이 STRICT_ALL_TABLES, STRICT_TRANS_TABLES 설정을 추가하도록 하자.

        'OPTIONS': {
        'init_command' : "SET sql_mode='STRICT_TRANS_TABLES'",
        }

 

참고 자료

https://dev.mysql.com/doc/refman/8.0/en/server-options.html#option_mysqld_sql-mode

 

MySQL :: MySQL 8.0 Reference Manual :: 5.1.7 Server Command Options

5.1.7 Server Command Options When you start the mysqld server, you can specify program options using any of the methods described in Section 4.2.2, “Specifying Program Options”. The most common methods are to provide options in an option file or on t

dev.mysql.com

반응형