-
MySQL 5.7 poprawki niekompatybilności z 5.6 i 5.5
Jeśli widzicie w logach komunikaty podobne do tych poniżej, to oznacza że używacie pewnie MySQL 5.7 z bazą danych pochodzącą ze starszej wersji. Miałem ostatnio taki przypadek. Objawem była biała strona kategorii jednego ze sklepów.
SQLSTATE[HY000]: General error: 3065 Expression #1 of ORDER BY clause is not in SELECT list, references column 'sklep.products_translations.order' which is not in SELECT list; this is incompatible with DISTINCT;
lub
SQLSTATE[42000]: Syntax error or access violation: 1055 Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'sklep.tblannouncements.date' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by
Aby temu zaradzić należy dodać do configa MySQL-a, Percony lub MariaDB następujący wpis.
sql_mode=IGNORE_SPACE,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
Na koniec oczywiście restartujemy usługę serwera bazy danych.