Při migraci webové stránky klienta z jednoho WHM/cPanel na jiný WHM/cPanel se mi zobrazila chyba SQL „Nekompatibilní s sql_mode=only_full_group_by “. Níže je kompletní chybová zpráva.
SELECT list is not in GROUP BY clause and contains nonaggregated column 'dbname.p.picfile' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by
Řešení: MySQL 5.7.5+ se změnilo GROUP BY chování, aby bylo v souladu s SQL99 (starší verze nebyly) a to byl důvod chyby.
Řešením je upravit své konfigurace MySQL a odstranit ONLY_FULL_GROUP_BY možnost z sql_mode . Tím se změní GROUP BY chování zpět na chování před MySQL 5.7.5.
Pokud jste na sdíleném hostingu, nebudete moci změnit sql_mode na úrovni životního prostředí.
Odebrat ONLY_FULL_GROUP_BY v my.cnf soubor
Pokud máte přístup ke konfiguračnímu souboru MySQL my.cnf , otevřete soubor:
# vim /etc/mysql/my.cnf
a na konec souboru přidejte následující řádek:
[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" Restartujte službu MySQL:
# systemctrl restart mysqlZakázat ONLY_FULL_GROUP BY
Tím zakážete ONLY_FULL_GROUP_BY pro VŠECHNY uživatele systému.
Odebrat ONLY_FULL_GROUP_BY ve WHM/cPanel
Pokud je vaše doména na cPanel (sdílený hosting), musíte kontaktovat svého poskytovatele hostingu, aby jej aktualizoval.
Pokud máte přístup k WHM, přejděte na PHPMyAdmin pod SQL Services z WHM, jak je uvedeno níže:
Klikněte na Variables z nabídky a vyhledejte SQL_MODE
Klikněte na tlačítko Upravit a změňte odstranění ONLY_FULL_GROUP_BY . Po úpravě klikněte na save .
To je ono!