Ich habe unseren Server auf Ubuntu 16 aktualisiert, das MySQL 5.7 enthält, und standardmäßig ist der strikte Modus aktiviert (obwohl in keiner der Konfigurationsdateien ein Eintrag dafür vorhanden ist).
Wir haben Probleme beim Importieren von Datenbanken, die unter MySQL 5.6 und früher in Produktion waren, und das liegt am strengen Modus. Standardmäßig ist Folgendes aktiviert:
STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_AUTO_VALUE_ON_ZERO,NO_ENGINE_SUBSTITUTION,NO_ZERO_DATE,NO_ZERO_IN_DATE,ONLY_FULL_GROUP_BY
Wie kann ich MySQL 5.7 so konfigurieren, dass es genau wie in 5.6 funktioniert, sodass Datenbanken ab 5.6 mit 5.7 kompatibel sind?
Antworten:
Um den strengen SQL-Modus zu deaktivieren, stellen Sie SSH auf Ihren Server als
root
und erstellen Sie diese Datei:Öffnen Sie die Datei und geben Sie diese beiden Zeilen ein:
Starten Sie MySQL mit diesem Befehl neu:
Diese Änderung deaktiviert zwei SQL - Modus - Einstellungen,
STRICT_TRANS_TABLES
undONLY_FULL_GROUP_BY
, dass in MySQL 5.7 und verursachen Probleme für einige ältere Anwendungen hinzugefügt wurden.Bestätigen, dass der strikte SQL-Modus deaktiviert ist
Sie können bestätigen, dass der strikte SQL-Modus deaktiviert ist, indem Sie diesen Befehl wie folgt ausführen
root
:Wenn der strikte Modus deaktiviert ist, wird von diesem Befehl keine Ausgabe angezeigt.
Wenn das Deaktivieren des strengen Modus Probleme für Sie verursacht, können Sie ihn erneut aktivieren, indem Sie diese Datei löschen und MySQL erneut starten.
Quelle: Deaktivieren des strengen SQL-Modus in MySQL 5.7
quelle
mysql: [ERROR] Found option without preceding group in config file /etc/mysql/conf.d/disable_strict_mode.cnf at line 1!
?Stellen Sie
sql_mode
in/etc/mysql/mysql.conf.d/mysqld.cnf
ohneSTRICT_TRANS_TABLES
.Hinzufügen unter
[mysqld]
:quelle