1364 : Field 'xxxxx' doesn't have a default value

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 로 설정

Comments

Tips & Tech

GnuBoard SmartEditor2Skin.html 다운로드 되는 현상
GnuBoard 부트스트랩 테마 예제로 사용중인 main.php
GnuBoard 유튜브 스킨
GnuBoard cdn.jsdelivr.net 에서 ssl 인증서 오류 문제
GnuBoard 아이디 대신 이메일로 회원 가입하기
GnuBoard 사이드바 만들기
Views GnuBoard 1364 : Field 'xxxxx' doesn't have a default value
GnuBoard 웹폰트 적용하기
GnuBoard CKEditor 5 플러그인
GnuBoard 회원 가입일 기준으로 이용기간 정하기
GnuBoard sql_fetch, sql_query 안쓰고 직접 mysql 사용하기
GnuBoard 새 글 정리하기
GnuBoard CKEditor 5 플러그인
GnuBoard 임의로 테마설정하기
GnuBoard CKEditor 5 플러그인
GnuBoard 클라우드플레어(Cloudflare) 사용시 아이피 주소 및 URL…
GnuBoard 훅을 통한 글쓰기, 댓글 알림
GnuBoard Syntax Highlight 적용하기