[그누보드] 1364 : Field 'xxxxx' doesn't have a default value

- 08-20
- 45,445 회
- 0 건
MySQL STRICT_TRANS_TABLES
오류 해결기 (그누보드 서버 이전 시)
상황
서버를 이전한 뒤, 동일한 환경에서 동작하는 다른 그누보드는 문제없는데 특정 설치본에서만 글쓰기 오류가 발생했습니다.
확인 결과, MySQL의 STRICT_TRANS_TABLES
설정이 원인이었고, 이를 제거하여 임시 조치했습니다.
1. MySQL 설정 변경
/etc/my.cnf.d/server.cnf
파일을 편집합니다.
[mysqld]
sql_mode=NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
변경 후 MySQL을 재시작합니다.
2. 설정 확인
mysql> select @@global.sql_mode;
+--------------------------------------------+
| @@GLOBAL.sql_mode |
+--------------------------------------------+
| NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION |
+--------------------------------------------+
1 row in set (0.00 sec)
정상적으로 STRICT_TRANS_TABLES
항목이 제거된 것을 확인할 수 있습니다.
3. 그누보드 추가 설정
예전 버전의 그누보드에서는 MySQL strict 모드와 호환 문제가 있을 수 있습니다.
이 경우 /data/dbconfig.php
파일을 열고 아래 설정을 확인합니다.
define('G5_MYSQL_SET_MODE', true);
- 최근 설치본 → 기본값이 이미
true
- 예전 설치본 →
false
로 되어 있으면true
로 수정해야 글쓰기 오류 없이 정상 동작
정리
- 원인: MySQL의
STRICT_TRANS_TABLES
모드가 기존 그누보드와 호환되지 않아 발생 - 임시 조치:
sql_mode
에서STRICT_TRANS_TABLES
제거 - 근본 조치:
dbconfig.php
의G5_MYSQL_SET_MODE
값을true
로 설정
로그인 후 댓글내용을 입력해주세요