Dafür gibt es zwei Möglichkeiten.
- Für aktuelle MySQL-Sitzung (vorübergehende Lösung)
Führen Sie zuerst eine Abfrage aus, um den aktuellen SQL-Modus Ihres MySQL-Servers abzurufen.
mysql> SELECT @@sql_mode;
+----------------------------------------------------------------+
| @@sql_mode |
+----------------------------------------------------------------+
|STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION |
+----------------------------------------------------------------+
1 row in set (0.00 sec)
Wenn das Ergebnis STRICT_TRANS_TABLES
enthält , müssen Sie diesen Wert entfernen, damit die Einfügeabfrage den NULL-Wert übergeben kann. Stellen Sie sicher, dass Ihr mysql-Benutzer berechtigt ist, diese Änderungen zu übernehmen, und starten Sie Mysql Server neu, nachdem Sie diese Änderungen vorgenommen haben.
SET GLOBAL sql_mode = '';
- For Life Time of Mysql (permanente Lösung)
Sie müssen meine.cnf-Datei aktualisieren. Speicherort dieser Datei ist:\etc\my.cnf oder \etc\mysql\mysql.cnf
Unter [mysqld] werden einige Standardparameter wie
gesetzt[mysqld]
innodb_file_per_table=1
default-storage-engine=MyISAM
performance-schema=0
max_allowed_packet=268435456
open_files_limit=10000
Fügen Sie einfach eine Zeile darunter hinzu
sql-mode=""
Stellen Sie sicher, dass Sie Mysql Server neu starten, nachdem Sie diese Datei geändert haben. Normalerweise ist der Root-Benutzer der Besitzer der Datei, also müssen Sie sich mit dem Root-Benutzer auf dem Server anmelden.
Für weitere Details, um zu verstehen, was dieser SQL-Modus tut.
STRICT_TRANS_TABLES
Aktivieren Sie den strikten SQL-Modus für transaktionale Speicher-Engines und, wenn möglich, für nicht-transaktionale Speicher-Engines. Einzelheiten finden Sie unter Strenger SQL-Modus.
Siehe:http://dev.mysql.com /doc/refman/5.7/en/sql-mode.html#sqlmode_strict_trans_tables
NO_AUTO_CREATE_USER
Verhindern Sie, dass die GRANT-Anweisung automatisch neue Benutzerkonten erstellt, wenn dies andernfalls der Fall wäre, es sei denn, Authentifizierungsinformationen sind angegeben. Die Anweisung muss ein nicht leeres Passwort mit IDENTIFIED BY oder ein Authentifizierungs-Plugin mit IDENTIFIED WITH angeben.
Siehe:http://dev.mysql.com /doc/refman/5.7/en/sql-mode.html#sqlmode_no_auto_create_user
NO_ENGINE_SUBSTITUTION
Automatisches Ersetzen der Standardspeicher-Engine steuern, wenn eine Anweisung wie CREATE TABLE oder ALTER TABLE eine deaktivierte oder nicht einkompilierte Speicher-Engine angibt.
Siehe:http://dev.mysql.com /doc/refman/5.7/en/sql-mode.html#sqlmode_no_engine_substitution