Via le client de ligne de commande MySQL, j'essaie de définir le mysql_mode global:
SET GLOBAL sql_mode = TRADITIONAL;
Cela fonctionne pour la session en cours, mais après avoir redémarré le serveur, le sql_mode revient à sa valeur par défaut: '', une chaîne vide.
Comment puis-je définir définitivement sql_mode sur TRADITIONNEL?
Le cas échéant, MySQL fait partie du package WAMP.
Merci.
Ajoutez ceci à votre fichier my.cnf (ou my.ini si vous utilisez Windows):
sql_mode="TRADITIONAL"
et redémarrez le serveur
MySQL sql_mode "TRADITIONAL"
, a.k.a. "mode strict", est défini par les documents MySQL comme:
"Donner une erreur au lieu d'un avertissement" lors de l'insertion d'une valeur incorrecte dans une colonne.
Voici comment vous assurer que votre sql_mode est défini sur "TRADITIONAL"
.
Tout d'abord, vérifiez votre paramètre actuel:
mysql
mysql> SELECT @@GLOBAL.sql_mode;
+-------------------+
| @@GLOBAL.sql_mode |
+-------------------+
| |
+-------------------+
1 row in set (0.00 sec)
Ceci est retourné vide, la valeur par défaut, c'est mauvais: votre sql_mode n'est pas défini sur "TRADITIONNEL".
Modifiez donc le fichier de configuration:
Sudo vim /etc/mysql/my.cnf
Ajoutez cette ligne dans la section intitulée [mysqld]
: sql_mode="TRADITIONAL"
(comme l'a souligné fancyPants)
Redémarrez ensuite le serveur:
Sudo service mysql restart
Ensuite, vérifiez à nouveau:
mysql
mysql> SELECT @@GLOBAL.sql_mode;
+------------------------------------------------------------------------------------------------------------------------------------------------------+
| @@GLOBAL.sql_mode |
+------------------------------------------------------------------------------------------------------------------------------------------------------+
| STRICT_TRANS_TABLES,STRICT_ALL_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,TRADITIONAL,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION |
+------------------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)
Succès! Tu es dorée maintenant.