hébergement web

Comment désactiver le mode strict de MySQL

Vous désactivez ainsi le mode MySQL strict pour les systèmes CMS incompatibles.

Quelques Contenu Les systèmes de gestion tels que Typo, Contao, Contenido ou d'autres systèmes ont des problèmes avec le depuis MySQL 5.1 disponible en mode strict. Il s'agit du réglage par défaut depuis la version 5.7.

Pour que vous puissiez CMS il est toujours possible de désactiver le mode strict du côté serveur. Cela n'est bien sûr recommandé que sous certaines conditions.

Que fait le mode strict ?

Le mode strict de MySQL/MariaDB contrôle le traitement des valeurs non valides ou manquantes dans les requêtes de modification des données, y compris INSERT-, MISE À JOUR- et les déclarations CREATE.

Invalide ou disparu Données entraînent des avertissements ou des erreurs lors de l'exécution de la requête SQL. Si le mode Scrict est désactivé, les requêtes non valides ou les valeurs manquantes sont ajustées et un simple avertissement est émis. Cela peut conduire à des résultats inattendus.

Un exemple serait une limite de caractères. Si le mode strict est désactivé, les caractères en excès seront coupés pour l'adapter.

Pourquoi cela ne se produit-il qu'avec certains systèmes CMS ?

On ne peut que spéculer. Le code est probablement si étendu que personne ne peut le comprendre. Sur un système de gestion de contenu beaucoup de gens travaillent, parfois ils font appel à des Fonctions un qui ne sera pas regardé pendant des années. Tant qu'il n'y a pas de problèmes graves, ce n'est pas si grave.

Avec un système comme le whmcs, qui est également touché, la situation est tout autre. Si des données importantes sont tronquées, les affectations seront incorrectes. Cela peut être problématique dans le cas d'un règlement.

Où ces instructions peuvent-elles être appliquées ?

Les instructions se réfèrent à Linux les systèmes avec MySQL 5.6/5.7 ou MariaDB 10.1 et plus haut là où le mode strict est actif.

Racine L'accès est nécessaire pour effectuer les modifications. Notre Instructions se réfèrent toujours à Centos Linux. Avec d'autres distributions, les fichiers de configuration peuvent se trouver dans d'autres répertoires.

Étape 1 : Créer des sauvegardes

Lorsque vous modifiez des fichiers, vous devez toujours utiliser un Sauvegarde ...à faire. Vous pouvez effacer quelque chose involontairement beaucoup trop rapidement.

cp -a /etc/mon.cnf{,.strict.bak}

La commande crée un fichier my.cnf.strict.bak à partir du fichier my.cnf dans le même répertoire.

Étape 2 : Désactiver le mode MySQL Strict

Le fichier ne contient normalement pas sql_mode=... il faut donc ajouter la ligne suivante à la section [mysqld] :

sql_mode=""

Étape 3 : Redémarrer le service MySQL

Après avoir édité le fichier, le service doit être redémarré pour appliquer les modifications.

systemctl restart mariadb

Après le redémarrage du service, vous pouvez vérifier le réglage en exécutant la commande suivante. Voici un exemple avec le mot de passe d'un Serveur Plesk. Alternativement avec root et le mot de passe.

mysql -uadmin -p`cat /etc/psa/.psa.shadow` -e "SELECT @@sql_mode ;"

La déclaration suivante devrait alors apparaître :

+————+

| @@sql_mode |

+————+

| |

+————+

Vidéo recommandée de notre chaîne Youtube