Я использую mysql версию 5.7.12 на Ubuntu 16.04. Я заметил следующее исключение при запуске моего веб-приложения:mysql 5.7.12 - Отключить only_full_group_by sql_mode не удалось полностью
SQL Exception: Expression #x из списка SELECT, не является в предложения GROUP BY и содержит неагломерированных столбец «something.something», которое не функционально зависит от столбцов в GROUP BY; это несовместимо с sql_mode = only_full_group_by
Он отлично работал на mysql 5.5. Я искал решения в Интернете. Я могу понять, почему они по умолчанию используют only_full_group_by mysql_mode в версии 5.7. Тем не менее, я не могу позволить себе на этом этапе вернуться к коду и продолжать исправлять запросы. Я решил отключить этот sql_mode, отредактировав файл /etc/mysql/my.cnf, как предложено here. Добавив следующие строки в конец my.cnf и перезапустив mysql.
[mysqld]
sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION'
Чтобы убедиться, что он работает, я попробовал следующие команды в консоли тузд:
SELECT @@sql_mode;
SELECT @@GLOBAL.sql_mode;
SELECT @@SESSION.sql_mode;
Все они вернулись тот же результат, как показано ниже:
+ ---- -------------------------------------------------- --------------------------------------- + | @@ GLOBAL.sql_mode | + ------------------------------------------------ --------------------------------------------- + | STRICT_TRANS_TABLES, NO_ZERO_IN_DATE, NO_ZERO_DATE, NO_AUTO_CREATE_USER, NO_ENGINE_SUBSTITUTION | + ------------------------------------------------ --------------------------------------------- +
1 ряд в наборе (0,00 сек)
После запуска моего webapp я обнаружил, что он действительно работал для некоторых запросов, но для других он по-прежнему бросает то же исключение. Я не знаю, что делать. Пожалуйста, помогите мне решить эту проблему.
Благодаря