Beim Migrieren einer Client-Website von einem WHM/cPanel zu einem anderen WHM/cPanel erhielt ich einen SQL-Fehler „Inkompatibel mit sql_mode=only_full_group_by “. Nachfolgend finden Sie die vollständige Fehlermeldung.
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
Lösung: MySQL 5.7.5+ hat GROUP BY
geändert Verhalten als SQL99-kompatibel (ältere Versionen waren es nicht) und das war der Grund für den Fehler.
Die Problemumgehung besteht darin, Ihre MySQL-Konfigurationen zu bearbeiten, um ONLY_FULL_GROUP_BY
zu entfernen Option aus sql_mode
. Dadurch wird GROUP BY
geändert Verhalten wieder auf das Verhalten vor MySQL 5.7.5 zurück.
Wenn Sie sich auf einem Shared Hosting befinden, können Sie den sql_mode
nicht ändern auf Umweltebene.
Entferne ONLY_FULL_GROUP_BY
in my.cnf
Datei
Wenn Sie Zugriff auf die MySQL-Konfigurationsdatei my.cnf
haben , öffnen Sie die Datei:
# vim /etc/mysql/my.cnf
und fügen Sie die folgende Zeile am Ende der Datei hinzu:
[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"
Starten Sie den MySQL-Dienst neu:
# systemctrl restart mysqlDeaktivieren Sie ONLY_FULL_GROUP BY
Dadurch wird ONLY_FULL_GROUP_BY für ALLE Benutzer des Systems deaktiviert.
Entfernen ONLY_FULL_GROUP_BY
in WHM/cPanel
Wenn sich Ihre Domain auf einem cPanel (Shared Hosting) befindet, müssen Sie sich an Ihren Hosting-Provider wenden, um dasselbe zu aktualisieren.
Wenn Sie Zugriff auf WHM haben, greifen Sie auf PHPMyAdmin
zu unter SQL Services
von WHM wie unten gezeigt:
Klicken Sie auf Variables
aus dem Menü und suchen Sie nach SQL_MODE
Klicken Sie auf die Schaltfläche „Bearbeiten“ und ändern Sie „Entfernen“ ONLY_FULL_GROUP_BY
. Klicken Sie nach der Bearbeitung auf save
.
Das ist es!