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!