Загрузка...

Как побороть ошибку MySQL: #1067 — Invalid default value

mysql

При редактировании БД столкнулся с ошибкой:

#1067 — Некорректное значение по умолчанию для ‘post_date’
#1067 — Invalid default value

дефолтное значение стояло

0000-00-00 00:00:00

база выдает ошибку т.к. данная дата не валидна потому, что она не находится в допустимом диапазоне
1970-01-01 00:00:01 — 2038-01-19 03:14:07

Но даже при запросе смены дефолтного значения на NULL:

ALTER TABLE `wp_comments` CHANGE `comment_date` `comment_date` DATETIME NULL DEFAULT NULL;

база выдавала ошибку т.к. были другие столбцы в таблице с неверным значением.

Решение

Пришлось править конфиг mySQL, чтобы разрешить работу с некорректным значением по-умолчанию:

[mysqld]
sql-mode=NO_ENGINE_SUBSTITUTION

перезапустить БД, после этого поменять значения на NULL или валидные, затем вернуть конфиг обратно.