Maison >base de données >tutoriel mysql >Comment définir et gérer le « sql_mode » global dans MySQL ?

Comment définir et gérer le « sql_mode » global dans MySQL ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-12-02 02:18:11850parcourir

How Do I Set and Manage Global `sql_mode` in MySQL?

Définition du sql_mode global dans MySQL

Dans MySQL, sql_mode définit le comportement par défaut du serveur de base de données. La définition de sql_mode applique globalement le mode configuré à toutes les connexions et sessions ultérieures. Cela diffère de la définition de sql_mode par session, qui affecte uniquement la connexion actuelle.

Lorsque vous rencontrez des erreurs lors de la configuration globale de sql_mode, il est important de revoir la syntaxe. La bonne façon de définir plusieurs modes dans un contexte global est :

SET GLOBAL sql_mode = 'NO_BACKSLASH_ESCAPES', 'STRICT_TRANS_TABLE', 'NO_AUTO_CREATE_USER', 'NO_ENGINE_SUBSTITUTION'

Avantages des modes Global et Session

  • Global Modes :

    • Appliquer un comportement cohérent sur toutes les connexions, garantissant une base de données standardisée environnement.
    • Évitez que des utilisateurs ou des applications individuels aient besoin de définir des modes spécifiques par session.
  • Modes de session :

    • Offre la flexibilité nécessaire pour remplacer les paramètres globaux pour des tâches ou des utilisateurs spécifiques.
    • Autoriser les modifications temporaires à sql_mode sans affecter les autres sessions.

Paramètre préféré

Le paramètre préféré dépend de l'application et de l'environnement. Si un comportement cohérent est souhaité à tous les niveaux, il est recommandé de définir sql_mode globalement. Cependant, si des exigences de session spécifiques surviennent, les modes de session offrent la flexibilité nécessaire.

Définition permanente du sql_mode global

Pour rendre les modifications globales du sql_mode permanentes, elles doivent être configurées dans le fichier de configuration MySQL (par exemple, /etc/mysql/my.cnf sous Linux). Dans la section [mysqld], ajoutez ou modifiez l'option sql_mode. Par exemple :

[mysqld]
sql_mode = NO_BACKSLASH_ESCAPES, STRICT_TRANS_TABLES, NO_ENGINE_SUBSTITUTION

Pour les versions plus récentes de MySQL (par exemple, 5.7.8 ou supérieure), le paramètre sql_mode peut nécessiter un trait d'union au lieu d'un trait de soulignement et de guillemets :

[mysqld]
sql-mode="STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION"

Consultez toujours la documentation MySQL pour connaître la syntaxe appropriée en fonction de la version de MySQL utilisée.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn