본문 바로가기

Engineering/__01. Mysql

errorcode[1292]\n errormsg:Incorrect datetime value: \'0000-00-00 00:00:00\' for column \


MYSQL 5.7 이전 버전부터 사용하다가 5.7 버전으로 업그레이드 한 경우 발생한다고 한다.

INSERT 를 수행할 경우 PHP 에서는 다음과 같은 에러를 발생한다.


 ============================================================================== 
 DB Access Error - debug_print_backtrace() OUTPUT START 
 ATTENTION: Enabling more debug info will produce path disclosure weakness (CWE-200) 
            Having this additional Information could be useful for reporting 
            issue to development TEAM. 

 ==============================================================================


MYSQL 로그 등을 확인하면 다음과 같은 에러가 발생한다.


errorcode[1292]\n    errormsg:Incorrect datetime value: \'0000-00-00 00:00:00\' for column \...


이는 MYSQL 의 strick sql mode 가 동작할 때 발생하는 것으로 이 중 NO_ZERO_DATE 가 동작하고 있어서라고 한다.

(참조 : https://dev.mysql.com/doc/refman/5.7/en/sql-mode.html#sqlmode_no_zero_date)


이 경우 다음과 같이 strick mode 를 disable 시켜 해결할 수 있다. 

(필자의 경우 testlink 를 사용하던 중 발생하였고 이 경우 testcase 등을 추가할 수 없었다.)


/etc/mysql/conf.d/disable_strict_mode.cnf

파일을 수정한다. 없으면 생성한다.


[mysqld]

sql_mode=IGNORE_SPACE,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

를 추가하여 저장한 후 mysql 서비스를 재시작한다.

(필자의 경우 NO_ZERO_DATE 뿐 아니라 일반적으로 disable 시키는 옵션을 포함해 놓았다.)


'Engineering > __01. Mysql' 카테고리의 다른 글

[TIP]  (0) 2022.08.22
CSV 파일 import  (0) 2020.07.29
[Mysql] 기본  (0) 2017.07.05