Existují 2 způsoby, jak to udělat.
- Pro aktuální relaci Mysql (dočasné řešení)
Nejprve proveďte dotaz, abyste získali aktuální režim SQL vašeho serveru mysql.
mysql> SELECT @@sql_mode;
+----------------------------------------------------------------+
| @@sql_mode |
+----------------------------------------------------------------+
|STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION |
+----------------------------------------------------------------+
1 row in set (0.00 sec)
Pokud výsledek obsahuje STRICT_TRANS_TABLES
, musíte tuto hodnotu odstranit, abyste umožnili vkládacímu dotazu předat hodnotu NULL. Ujistěte se, že váš uživatel mysql má oprávnění použít tyto změny a po použití restartujte Mysql Server.
SET GLOBAL sql_mode = '';
- Pro Life Time of Mysql (trvalé řešení)
Musíte aktualizovat soubor my.cnf. Umístění tohoto souboru je:\etc\my.cnf nebo \etc\mysql\mysql.cnf
Pod [mysqld] budou nastaveny některé výchozí parametry jako
[mysqld]
innodb_file_per_table=1
default-storage-engine=MyISAM
performance-schema=0
max_allowed_packet=268435456
open_files_limit=10000
Stačí pod to přidat jeden řádek
sql-mode=""
Po změně tohoto souboru nezapomeňte restartovat Mysql Server. Normálně bude vlastníkem souboru uživatel root, takže se musíte přihlásit jako uživatel root na serveru.
Další podrobnosti o tom, co tento režim SQL dělá.
STRICT_TRANS_TABLES
Povolte přísný režim SQL pro transakční úložné stroje, a pokud je to možné, pro netransakční úložné stroje. Podrobnosti naleznete v části Přísný režim SQL.
Viz:http://dev.mysql.com /doc/refman/5.7/en/sql-mode.html#sqlmode_strict_trans_tables
NO_AUTO_CREATE_USER
Zabránit příkazu GRANT v automatickém vytváření nových uživatelských účtů, pokud by tak učinil, pokud nejsou zadány ověřovací informace. Příkaz musí specifikovat neprázdné heslo pomocí IDENTIFIED BY nebo ověřovacího pluginu pomocí IDENTIFIED WITH.
Viz:http://dev.mysql.com /doc/refman/5.7/cs/sql-mode.html#sqlmode_no_auto_create_user
NO_ENGINE_SUBSTITUTION
Řídit automatické nahrazování výchozího úložiště, když příkaz jako CREATE TABLE nebo ALTER TABLE určuje úložiště, které je zakázáno nebo není zkompilováno.
Viz:http://dev.mysql.com /doc/refman/5.7/en/sql-mode.html#sqlmode_no_engine_substitution