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
Libérer: 2024-12-02 02:18:11
original
731 Les gens l'ont consulté

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'
Copier après la connexion

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
Copier après la connexion

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"
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal