MariaDB 나 MySQL 환경에서 변경사항이 적용안되거나 저장이 안되는 경우 MariaDB 와 MySQL환경에서 변경사항이 적용안되거나 저장이 안되는 경우는
#1364 - Field '컬럼이름' doesn't have a default value 의 에러가 발생하는 경우일 수 있습니다.
데이타베이스의 버전이 업그레이드 되면서 컬럼의 기본값(default)이 비어있을 경우 위의 에러가 발생할 수 있습니다.
이는 strict 모드가 적용되어 규칙이 엄격해져 생긴 현상입니다.
이때에는 my.cnf 파일(보통 '/etc/my.cnf' 위치에 있습니다.)에서
[mysqld] 밑의
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
라는 줄을 찾아
sql_mode=NO_ENGINE_SUBSTITUTION
로 바꿔주신 후 DB서버를 재시작 해주시면 됩니다.
만약 재시작 할 수 없는 환경이라면, query 문으로
SET GLOBAL sql_mode = 'NO_ENGINE_SUBSTITUTION’;
SET SESSION sql_mode = 'NO_ENGINE_SUBSTITUTION’;
를 실행해 주세요.
---------------------------------
참고) DBeaver 를 이용해 접속하시는 분들의 경우, 위처럼 해도 DBeaver 자체에서 Strict 모드를 강제하므로 안될 수 있습니다.
이때에는
접속할 DB목록에서 오른쪽 클릭 > Edit Connection > Connection settings > Driver properties > jdbcCompliantTruncation 의 값을 false 로 변경해주세요.