Variables utilisateur
<<<
Variables système Syntaxe des commentaires
>>>

10 Structure du langage
 Manuel de Référence MySQL 4.1 : Version Française

Literals: Comment écrire les chaînes et les nombres
Noms de bases, tables, index, colonnes et alias
Variables utilisateur
->Variables système
Syntaxe des commentaires
Cas des mots réservés MySQL

10.4 Variables système

A partir de la version 4.0.3, nous fournissons un meilleur accès à beaucoup de variables système et variables de connexion. On peut changer la plupart d'entre elle sans avoir à stopper le serveur.

Le serveur mysqld dispose de deux types de variables. Les variables globales, qui affectent l'ensemble du serveur. Les variables de session qui affectent des connexions individuelles.

Lorsque mysqld démarre, toutes les variables globales sont initialisées à partir des arguments passés en ligne de commande et des fichiers de configuration. Vous pouvez changer ces valeurs avec la commande SET GLOBAL . Lorsqu'un nouveau thread est créé, les variables spécifiques aux threads sont initialisées à partir des variables globales et ne changeront pas même si vous utilisez la commande SET GLOBAL .

Le serveur entretient aussi un jeu de variables de session pour chaque client qui se connecte. Les variables de session d'un client sont initialisées au moment de la connexion, en utilisant les valeurs correspondantes globales. Pour les variables de session qui sont dynamiques, le client peut les changer avec la commande SET SESSION var_name . Modifier les variables de session d'une connexion ne requiert aucun droit spécifique, mais le client ne peut changer que ses propres variables de session, et non pas celle d'un autre client.

Une modification à une variable globale est visible à tous les clients qui accèdent à cette variable. Mais, cela n'affecte la variable de session correspondante que lors de la prochaine connexion. Les connexions déjà établies ne sont pas affectées par un changement de variable globale. (pas même le client qui a émis la commande SET GLOBAL statement).

Pour définir la valeur d'une variable GLOBAL , vous devez utiliser l'une des syntaxes suivantes. Ici nous utilisons la variable sort_buffer_size à titre d'exemple.

Pour donner la valeur à une variable GLOBAL , utilisez l'une de ces syntaxes :


mysql> SET GLOBAL sort_buffer_size=value;
mysql> SET @@global.sort_buffer_size=value;
Pour définir la valeur d'une variable SESSION , vous devez utiliser l'une des syntaxes suivantes :

mysql> SET SESSION sort_buffer_size=value;
mysql> SET @@session.sort_buffer_size=value;
mysql> SET sort_buffer_size=value;
LOCAL est un synonyme de SESSION .Si vous ne spécifiez pas GLOBAL ou SESSION alors SESSION est utilisé. Syntaxe de SET .

Pour récupérer la valeur d'une variable de type GLOBAL vous pouvez utiliser l'une des commandes suivantes :


mysql> SELECT @@global.sort_buffer_size;
mysql> SHOW GLOBAL VARIABLES like 'sort_buffer_size';
Pour récupérer la valeur d'une variable de type SESSION vous pouvez utiliser l'une des commandes suivantes :

mysql> SELECT @@sort_buffer_size;
mysql> SELECT @@session.sort_buffer_size;
mysql> SHOW SESSION VARIABLES like 'sort_buffer_size';
Ici aussi, LOCAL est un synonyme de SESSION .Lorsque vous récuperez une valeur de variable avec la syntaxe @@nom_variable et que vous ne spécifiez pas GLOBAL ou SESSION , MySQL retournera la valeur spécifique au thread ( SESSION ) si elle existe. Sinon, MySQL retournera la valeur globale.

Pour la commande SHOW VARIABLES , si vous ne spécifiez pas GLOBAL , SESSION ou LOCAL , MySQL retourne les valeurs de SESSION .

La raison d'imposer la présence du mot GLOBAL pour configurer une variable de type GLOBAL mais non pour la lire est pour être sur que vous n'aurez pas de problèmes plus tard si vous voulez introduire ou effacer une variable spécifique au thread qui aurait le même nom. Dans ce cas, vous pourriez changer accidentellement l'état du serveur pour toutes les connexions (et non la votre uniquement).

Plus d'informations sur les options de démarrage du système et les variables système sont dans les sections et . Une liste des variables qui peuvent être modifiées durant l'exécution est présentée dans Variables dynamiques système .

Sommaire :

<< Variables système >>
Variables utilisateur Structure du langage Syntaxe des commentaires