Айти аутсорсинг Москва Рекомендуем заказать айти аутсорсинг Москва в компании Айтанго. itango.tech |
Изменение режима sql_mode
Словил ошибку SQL Prestashop при обновлении мускула до 5.7:
Expression #12 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'newsite1_gr.sav.quantity' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by
Это происходит при SELECT
колонок, не перечисленных в GROUP BY
, причем такое поведение с выводом ошибки было сделано по-умолчанию с версии 5.7.5.
Как исправить:
/usr/sbin/mysqld --verbose --help | grep -A 1 "Default options"
Выведется что-то типа
/etc/my.cnf /etc/mysql/my.cnf ~/.my.cnf
Будем править второй конфиг (первого скорее всего не будет).
Получаем текущее значение режимов SQL:
mysql -uuser -ppassword -e "select @@sql_mode"
Получаем такой список:
+-------------------------------------------------------------------------------------------------------------------------------------------+ | @@sql_mode | +-------------------------------------------------------------------------------------------------------------------------------------------+ | ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION | +-------------------------------------------------------------------------------------------------------------------------------------------+
Из этого списка выпиливаем ONLY_FULL_GROUP_BY
и пишем в конфиг:
- /etc/mysql/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
Перезагружаем мускул:
sudo service mysql restart