GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Inkompatibel mit sql_mode=only_full_group_by [Fix]

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.

Shared Hosting

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 mysql
Deaktivieren 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!


Linux
  1. So erstellen Sie eine Datenbank in MySQL mit MySQL Workbench

  2. MySQL-Server mit Nagios 3.4 überwachen

  3. So richten Sie LogAnalyzer mit Rsyslog und MySQL ein

  4. Ausnahme bei Kommunikationsverbindungsfehler – WSO2 mit MySQL [Fix]

  5. Fehler bei der Verwendung von GRANT mit IDENTIFIED by password in MySQL

So verwenden Sie MySQL mit der Ruby On Rails-Anwendung

So richten Sie MySQL mit Docker unter Linux ein

So fügen Sie einen neuen MySQL-Benutzer mit GRANT-Berechtigungen hinzu

DRBD mit MySQL Centos 8

Wie man MySQL mit Percona und Keepalived multimastert

8 Schritte zur Installation von MirthConnect mit MySQL / MariaDB unter Linux