среда, 13 июня 2018 г.

MySQL 5.7 Ошибка "is incompatible with sql_mode=only_full_group_by"

При запуске запроса с GROUP_BY можно столкнуться с ошибкой "is incompatible with sql_mode=only_full_group_by" что бы избавиться от нее нужно либо править свои запросы либо отключить данный режим sql_mode=only_full_group_by. В MySQL 5.7 он включен по умолчанию.
Для отключения нужно в конфиг my.cnf в секцию [mysqld] добавить следующий параметр:
sql_mode = STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION


Перезапускаем сервис и все работает.

Если хотите обойтись без рестарта сервиса то можно сменить глобальную переменную:

mysql > SET GLOBAL sql_mode=(SELECT REPLACE(@@sql_mode,'ONLY_FULL_GROUP_BY',''));