Er zijn 2 manieren om dit te doen.
- Voor huidige Mysql-sessie (tijdelijke oplossing)
Voer eerst de query uit om de huidige SQL-modus van uw mysql-server te krijgen.
mysql> SELECT @@sql_mode;
+----------------------------------------------------------------+
| @@sql_mode |
+----------------------------------------------------------------+
|STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION |
+----------------------------------------------------------------+
1 row in set (0.00 sec)
Als het resultaat STRICT_TRANS_TABLES
. bevat , moet u die waarde verwijderen om de insert-query de NULL-waarde door te geven. Zorg ervoor dat uw mysql-gebruiker privileges heeft om deze wijzigingen toe te passen en start Mysql Server opnieuw nadat u dit heeft toegepast.
SET GLOBAL sql_mode = '';
- Voor de levensduur van Mysql (permanente oplossing)
U moet het my.cnf-bestand bijwerken. Locatie van dat bestand is:\etc\my.cnf of \etc\mysql\mysql.cnf
Er zullen enkele standaard parameters zijn ingesteld onder [mysqld] zoals
[mysqld]
innodb_file_per_table=1
default-storage-engine=MyISAM
performance-schema=0
max_allowed_packet=268435456
open_files_limit=10000
Voeg daar gewoon een regel onder toe
sql-mode=""
Zorg ervoor dat u Mysql Server opnieuw start nadat u dit bestand hebt gewijzigd. Normaal gesproken is root-gebruiker de eigenaar van het bestand, dus u moet inloggen met root-gebruiker op de server.
Voor meer details om te begrijpen wat deze SQL-modus doet.
STRICT_TRANS_TABLES
Schakel de strikte SQL-modus in voor transactionele opslag-engines, en indien mogelijk voor niet-transactionele opslag-engines. Zie Strikte SQL-modus voor meer informatie.
Raadpleeg:http://dev.mysql.com /doc/refman/5.7/en/sql-mode.html#sqlmode_strict_trans_tables
NO_AUTO_CREATE_USER
Voorkom dat de GRANT-verklaring automatisch nieuwe gebruikersaccounts maakt als dit anders zou gebeuren, tenzij authenticatie-informatie is opgegeven. De verklaring moet een niet-leeg wachtwoord specificeren met IDENTIFICEERD DOOR of een authenticatie-plug-in die IDENTIFICEERD WITH gebruikt.
Raadpleeg:http://dev.mysql.com /doc/refman/5.7/en/sql-mode.html#sqlmode_no_auto_create_user
NO_ENGINE_SUBSTITUTION
Beheer automatische vervanging van de standaard opslag-engine wanneer een instructie zoals CREATE TABLE of ALTER TABLE een opslag-engine specificeert die is uitgeschakeld of niet is gecompileerd.
Raadpleeg:http://dev.mysql.com /doc/refman/5.7/en/sql-mode.html#sqlmode_no_engine_substitution