Sql mode=only full group by

Z Znalosti
Verze z 23. 7. 2016, 08:39, kterou vytvořil Admin (diskuse | příspěvky)
(rozdíl) ← Starší verze | zobrazit aktuální verzi (rozdíl) | Novější verze → (rozdíl)

U všech webů localhost/webtrees se v mnoha případech přestal zobrazovat postranní panel na stránce osoby. Platilo to v případě, kdy byl aktivní přídavný modul Vytux_cousins (Bratranci).

V deníku chyb byla chybová zpráva:

/var/www/Projekty/webtrees-1.7/app/Statement.php:82 SQLSTATE[42000]: Syntax error or access violation: 1055
Expression #3 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'webtrees-
.7.1.wt_name.n_givn' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with
sql_mode=only_full_group_by
#0 /app/Statement.php:82 PDOException("SQLSTATE[42000]: Syntax error or access violation: 1055 Expression #3
of SELECT list is not in GROUP BY clause and contains nonaggregated column 'webtrees-1.7.1.wt_name.n_givn'
which is not functionally dependent on columns in GROUP BY clause; this is incompatible with
ql_mode=only_full_group_by")
#1 /modules_v3/vytux_cousins/module.php:148 execute([array])
#2 /individual.php:227 getTabContent()

Chyba není v modulu Bratranci, ale v nastavení mysql! Nastavení se změnilo pravděpodobně po aktualizaci mysql při normální aktualizaci Ubuntu.

Řešení jsem nalezl v Disable ONLY_FULL_GROUP_BY:

If you want to disable permanently error sql_mode=only_full_group_by do those steps:

sudo nano /etc/mysql/my.cnf

Add this to the end of the file

[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"

A potom

sudo service mysql restart

This will disable ONLY_FULL_GROUP_BY for ALL users