BOARD

문제 해결

글자수 제한 해제 시 발생하는 MySQL 1067 오류 (sqlmode 설정) 해결

페이지 정보

profile_image
작성자 최고관리자
댓글 0건 조회 4회 작성일 26-10-22 15:50

본문

글자수 제한 해제 시 발생하는 MySQL 1067 오류 (sql_mode 설정) 해결

그누보드 게시판의 글자수 제한을 늘리기 위해 필드 형식을 변경할 때 발생하는 #1067 오류의 원인과 웹호스팅 환경에서의 해결 방법을 알아봅니다.

MySQL #1067 오류 원인 및 확인 방법

phpMyAdmin 등을 통해 게시판 필드 형식을 변경하거나 테이블을 수정할 때 발생하는 #1067 - Invalid default value for 'wr_datetime' 오류는 서버 환경의 MySQL sql_mode 설정과 날짜/시간 컬럼의 기본값 간의 충돌 때문에 발생합니다.

1. 주요 원인

  • MySQL 서버의 sql_mode에 NO_ZERO_IN_DATE 또는 NO_ZERO_DATE 같은 모드가 설정되어 있는 경우, 0000-00-00 00:00:00과 같은 유효하지 않은 날짜/시간 기본값을 허용하지 않아 저장이 차단됩니다.
  • 그누보드 게시판에서 글자수 제한 해제 등을 위해 필드 구조를 수정(text 타입 변경 등)할 때 이 기본값 제약 조건에 걸려 에러가 발생합니다.

2. 서버 환경 및 설정 확인

  • 사용 중인 웹호스팅 환경에 따라 개인이 MySQL 설정 파일을 직접 수정할 수 없는 경우가 많습니다. 웹호스팅 이용자의 경우 이 문제는 서버 환경 차이에서 비롯된 것으로 확인됩니다.
  • 개인이 직접 MySQL 설정을 변경할 권한이 없는 웹호스팅 환경이라면, 호스팅 업체에 문의하여 MySQL 설정 파일에서 sql_mode 세팅 값을 변경해 달라고 요청해야 합니다.

MySQL sql_mode 설정 확인 방법

MySQL 서버 환경에서 글자수 제한 해제 등 작업 중 발생하는 #1067 오류와 관련된 sql_mode 설정(특히 NO_ZERO_DATE, NO_ZERO_IN_DATE)을 확인하려면 데이터베이스에 접속하여 아래의 명령어를 수행합니다.

확인 명령어

show variables like 'sql_mode'\G

위 명령어를 실행하여 현재 서버에 설정된 모드 값에 NO_ZERO_DATE나 NO_ZERO_IN_DATE가 포함되어 있는지 확인할 수 있습니다.

웹호스팅 환경에서 MySQL 설정 파일(my.cnf 또는 my.ini)을 직접 수정할 권한이 없는 경우, 사용자가 임의로 sql_mode를 변경하는 것은 불가능합니다. 이 문제를 해결하기 위해 다음 절차를 권장합니다.

해결 절차

  1. 호스팅 업체 고객센터 문의: 사용 중인 웹호스팅 업체의 고객센터에 문의하여 현재 데이터베이스의 sql_mode 설정(특히 NO_ZERO_DATE, NO_ZERO_IN_DATE 등)으로 인해 데이터 저장 시 #1067 오류가 발생하고 있음을 알립니다.
  2. 설정 변경 요청: 호스팅 업체 측에 서버의 sql_mode 값을 조정해 줄 것을 요청해야 합니다.

대안: 세션 단위 설정 변경 호스팅 업체에서 전역 설정을 변경해주지 않는 경우, phpMyAdmin 등에서 테이블 구조를 수정하기 직전에 아래 쿼리를 실행하여 해당 세션에서만 제약을 일시적으로 해제할 수 있습니다.

SET SESSION sql_mode = '';

이후 테이블 수정 작업을 진행하면 오류를 우회할 수 있습니다.

주의사항:

  • 웹호스팅은 서버 관리 권한이 업체에 있으므로, 업체 정책에 따라 전역 설정 변경이 거부될 수 있습니다.
  • 세션 단위 변경은 해당 연결(세션)에만 적용되므로, 작업 시마다 쿼리를 실행해야 할 수 있습니다.

상황별 판단 및 행동 지침

  • 내 상황: 그누보드 게시판 글자수 제한 해제(필드 타입 변경) 중 #1067 - Invalid default value for 'wr_datetime' 오류 발생
  • 선택 기준: 서버의 sql_mode 설정에 NO_ZERO_DATE 또는 NO_ZERO_IN_DATE가 포함되어 날짜 기본값과 충돌하는지 확인
  • 다음 행동: 웹호스팅 환경이라 직접 설정 변경이 어렵다면 호스팅 업체에 문의하여 sql_mode 세팅 변경 요청

실전 FAQ

  • Q. 웹호스팅 이용 중인데 개인이 sql_mode를 직접 변경할 수 없나요?
    • 웹호스팅 환경은 서버 관리 권한이 업체에 있으므로 개인이 직접 설정 파일을 수정하기 어렵습니다. 이 경우 호스팅 업체 고객센터에 문의하여 설정을 변경해 달라고 요청해야 합니다.
  • Q. 호스팅사에서 sql_mode 전역 설정을 변경해 주지 않으면 어떻게 하나요?
    • 일부 웹호스팅 업체는 정책상 전역 설정을 변경해 주지 않을 수 있습니다. 이 경우 phpMyAdmin 등에서 테이블 구조를 수정하기 직전에 SET SESSION sql_mode = ''; 쿼리를 실행하여 해당 세션에서만 제약을 일시적으로 해제하는 방법을 시도해 볼 수 있습니다.

함께 보면 좋은 글

참고자료

기타 참고자료

댓글목록

등록된 댓글이 없습니다.