J'ai mis à niveau notre serveur vers Ubuntu 16 qui inclut Mysql 5.7 et, par défaut, le mode strict est activé (bien qu'il n'y ait aucune entrée pour cela dans aucun des fichiers de configuration).
Nous rencontrons des problèmes lors de l'importation de bases de données qui étaient en production sous mysql 5.6 et versions antérieures, et cela est dû au mode strict. Par défaut, voici ce qui est activé:
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
Comment puis-je configurer mysql 5.7 pour fonctionner exactement comme il l'a fait dans 5.6 ou pour que les bases de données de 5.6 soient compatibles avec 5.7?
Réponses:
Pour désactiver le mode SQL strict, connectez-vous à votre serveur en tant que
root
et créez ce fichier:Ouvrez le fichier et entrez ces deux lignes:
Redémarrez MySQL avec cette commande:
Cette modification désactive deux paramètres du mode SQL
STRICT_TRANS_TABLES
etONLY_FULL_GROUP_BY
qui ont été ajoutés dans MySQL 5.7 et provoquent des problèmes pour certaines applications plus anciennes.Confirmation du mode SQL strict est désactivé
Vous pouvez confirmer que le mode SQL strict est désactivé en exécutant cette commande en tant que
root
:Si le mode strict est désactivé, vous ne verrez aucune sortie de cette commande.
Si la désactivation du mode strict vous pose des problèmes, vous pouvez le réactiver en supprimant ce fichier et en redémarrant MySQL.
Source: Comment désactiver le mode SQL strict dans MySQL 5.7
la source
mysql: [ERROR] Found option without preceding group in config file /etc/mysql/conf.d/disable_strict_mode.cnf at line 1!
t-elle:?Mettre
sql_mode
en/etc/mysql/mysql.conf.d/mysqld.cnf
sansSTRICT_TRANS_TABLES
.Ajouter sous
[mysqld]
:la source