Решение ошибки ERROR 1067 (42000) at line 211: Invalid default value for ‘blablabla’

Заметил однажды при импорте sql файла следующую ошибку:

ERROR 1067 (42000) at line 211: Invalid default value for ‘blablabla’

Она возникает в связи с тем что новые версии MySQL сервера используют строгий режим и такие параметры как NO_ZERO_DATE не позволяют вносить в базу значения даты как например ‘0000-00-00’.

Подключимся к mysql серверу:

mysql -u root -p

Выполним запрос который отобразит значения sql_mode:

show variables like 'sql_mode';

Скопируем строку с этими значениями и выйдем из mysql:

exit

Откроем файл конфигурации например в текстовом редакторе nano (Ctrl+X для выхода, y/n для сохранения или отмены изменений):

sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf

У меня в файле не было sql_mode=, по этому в конце файла вставим строку со скопированными ранее значениями убрав из нее NO_ZERO_IN_DATE,NO_ZERO_DATE, в моё случае получилось следующее:

sql_mode=ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

Перезапустим mysql чтобы применить изменения:

sudo service mysql restart

Все, теперь при импорте данной ошибки не должно быть.

Добавить комментарий