Upgrade-Probleme
Quelle: https://dev.mysql.com/doc/refman/5.7/en/server-options.html#option_mysqld_sql-mode
Lösung
Wenn auf eine Version nach 5.7.5 aktualisiert wird, so ändert sich der Default-Value für sql_mode. In der älteren Versionen war der Wert ONLY_FULL_GROUP_BY nicht gesetzt, sodass SQLs ohne vollständiges Column-Select im Grouping funktioniert hat. Nachdem die Default-Setting angepasst wurde, wird eine Exception geworfen.
Beispiel vor 5.7.5
SELECT * FROM [table] GROUP BY spalte1, spalte2;
Beispiel nach 5.7.5
SELECT spalte1, spalte2 FROM [table] GROUP BY spalte1, spalte2;
Korrektur
Um dieses Problem zu umgehen, kann in den Konfigurations-Dateien sql_mode angepasst werden.
Default
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
Default Korrektur
sql_mode = STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
Konfigurations-Datei
root:/etc/mysql/mysql.conf.d# ll
insgesamt 16
drwxr-xr-x 2 root root 4096 Jun 13 11:44 ./
drwxr-xr-x 4 root root 4096 Jun 13 11:42 ../
-rw-r--r-- 1 root root 3391 Jun 13 11:44 mysqld.cnf
-rw-r--r-- 1 root root 21 Jul 11 2016 mysqld_safe_syslog.cnf
root:/etc/mysql/mysql.conf.d# tail mysqld.cnf
...
# For generating SSL certificates I recommend the OpenSSL GUI "tinyca".
#
# ssl-ca=/etc/mysql/cacert.pem
# ssl-cert=/etc/mysql/server-cert.pem
# ssl-key=/etc/mysql/server-key.pem
tmp_table_size = 25M
max_heap_table_size = 25M
innodb_buffer_pool_size = 5G
lower_case_table_names = 2
# Grouping Korrektur
sql_mode = STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
No Comments