После обновления MySql до версии 5.5 начали вылетать непонятные ошибки. Например:
Error: SQLSTATE[HY000]: General error: 1364 Field ‘MyField’ doesn’t have a default value
Связано это с тем, что в новой версии базы включен по умолчанию режим STRICT_TRANS_TABLES.
Проверить это можно следующим запросом:
В результате увидите что-то вроде:
STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER, NO_ENGINE_SUBSTITUTION
Вот он тот самый STRICT_TRANS_TABLES.
Данный режим выдает ошибки, когда вы пытаетесь добавить в базу записи, не указывая данные объявленные в таблице по умолчанию.
Для отключения нужно выполнить следующий запрос:
Теперь проверим отключился ли режим:
Увидим что отключен.
Но это не все, после перезагрузки MySql режим снова включится. Для того, что-бы избежать это необходимо удалить этот режим из конфигурационного файла my.ini.
Находим там строчку:
и удаляем из неё STRICT_TRANS_TABLES. Перезагружаем MySql.
Error: SQLSTATE[HY000]: General error: 1364 Field ‘MyField’ doesn’t have a default value
Связано это с тем, что в новой версии базы включен по умолчанию режим STRICT_TRANS_TABLES.
Проверить это можно следующим запросом:
1
| SELECT @@ GLOBAL .sql_mode |
STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER, NO_ENGINE_SUBSTITUTION
Вот он тот самый STRICT_TRANS_TABLES.
Данный режим выдает ошибки, когда вы пытаетесь добавить в базу записи, не указывая данные объявленные в таблице по умолчанию.
Для отключения нужно выполнить следующий запрос:
1
| SET GLOBAL sql_mode= 'NO_AUTO_CREATE_USER, NO_ENGINE_SUBSTITUTION' |
1
| SELECT @@ GLOBAL .sql_mode |
Но это не все, после перезагрузки MySql режим снова включится. Для того, что-бы избежать это необходимо удалить этот режим из конфигурационного файла my.ini.
Находим там строчку:
1
| sql-mode= 'бла-бла-бла' |
и удаляем из неё STRICT_TRANS_TABLES. Перезагружаем MySql.