
У меня возникли некоторые проблемы с изменениями в предложении group by в MySQL 5.7. Я постоянно получаю сообщение об ошибке, указывающее на необходимость исправить некоторые запросы, чтобы они работали правильно. Я выполнил несколько разных действий, но единственное, что, как я обнаружил, работает, — это запуск следующих запросов на сервере:
set global sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';
set session sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';
Это избавит меня от ошибок и позволит моему приложению работать.
Я попробовал добавить:
sql_mode = STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
Однако /etc/mysql/my.cfg
это вызвало некоторые проблемы, поскольку автоматические инкрементные числа больше не генерировались, поэтому все вставки не выполнялись.
Это происходит сейчас на нескольких серверах, и если какой-либо из них перезапускается, продолжать выполнять запросы становится проблематично.
Кто-нибудь может мне помочь решить эту проблему?
решение1
Чтобы задать режим SQL при запуске сервера, используйте
--sql-mode="modes"
параметр в командной строке илиsql-mode="modes"
в файле параметров, например my.cnf (операционные системы Unix) или my.ini (Windows). modes — это список различных режимов, разделенных запятыми. Чтобы явно очистить режим SQL, установите его в пустую строку с помощью --sql-mode="" в командной строке или sql-mode="" в файле параметров.
Включите цитаты в свой my.cnf
.