Sql mode=only full group by: Porovnání verzí

Z Znalosti
(Založena nová stránka s textem „Kategorie:webtrees U všech webů localhost/webtrees se v mnoha případech přestal zobrazovat postranní panel na stránce osoby. Platilo to v příp…“)
 
m
 
(Není zobrazeno 6 mezilehlých verzí od stejného uživatele.)
Řádek 3: Řádek 3:
  
 
V deníku chyb byla chybová zpráva:
 
V deníku chyb byla chybová zpráva:
 +
<code>
 +
/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()
 +
</code>
 +
 +
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 [http://stackoverflow.com/questions/23921117/disable-only-full-group-by 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
  
−
  /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-1.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
+
Add this to the end of the file
−
  #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 sql_mode=only_full_group_by")
+
  [mysqld]
−
  #1 /modules_v3/vytux_cousins/module.php:148 execute([array])
+
sql_mode = STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,
−
#2 /individual.php:227 getTabContent()
+
  NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
 +
A potom
 +
  sudo service mysql restart
 +
 
 +
This will disable ONLY_FULL_GROUP_BY for ALL users

Aktuální verze z 23. 7. 2016, 08:39

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