4.1 Configuration de MySQL
4 Administration du serveur
Manuel de Référence MySQL 4.1 : Version Française
. Options de ligne de commande de mysqld ->Fichier d'options my.cnf . Installer plusieurs serveurs sur la même machine . Faire fonctionner plusieurs serveurs MySQL sur la même machine
|
4.1.2 Fichier d'options my.cnf
MySQL peut, depuis la version 3.22, lire des options de démarrage par défaut pour le
serveur en ligne de commande, et, par le client, dans un fichier.
MySQL lit les options par défaut dans les fichiers suivants sous Unix :
Fichier
|
Objet
|
/etc/my.cnf
|
Options globales
|
DATADIR/my.cnf
|
Options spécifiques au serveur
|
defaults-extra-file
|
Le fichier spécifié par --defaults-extra-file=#
|
~/.my.cnf
|
Options spécifiques à l'utilisateur
|
DATADIR
est le dossier de données de MySQL (typiquement
/usr/local/mysql/data
pour les installation binaires ou
/usr/local/var
pour une installation source). Notez que
c'est ce dossier qui a été spécifié au moment de la configuration et
non pas le dossier de l'option
--datadir
lorsque
mysqld
démarre !
(
--datadir
n'a aucun effet sur le serveur, car le serveur
recherche les données avant de traiter les options de ligne de commande).
MySQL lit les fichiers d'options suivants sous Windows :
Fichier
|
Contenu
|
windows-system-directory\my.ini
|
Options globales
|
C:\my.cnf
|
Options globales
|
Notez que sous Windows, vous devez spécifier les chemins avec
/
plutôt que
\
. Si vous utilisez
\
, vous devez le spécifier deux fois, car
\
est un caractère de protection pour MySQL.
MySQL essaie de lire les fichiers d'options dans l'ordre dans lequel ils sont présentés
ci-dessus. Si des options sont spécifiées plusieurs fois, la dernière occurrence
utilisée prend la préséeance sur les options spécifiées avant. Les options
de ligne de commande ont la priorité sur les options spécifiées dans les fichiers.
Certaines options peuvent être spécifiées en utilisant des variables d'environnement.
Les options spécifiées en ligne de commande ou en fichier ont la priorité sur
les options qui le sont via une variable d'environnement.
Variables d'environnement MySQL .
Les programmes suivants utilisent les fichiers d'options :
mysql
,
mysqladmin
,
mysqld
,
mysqld_safe
,
mysql.server
,
mysqldump
,
mysqlimport
,
mysqlshow
,
mysqlcheck
,
myisamchk
et
myisampack
.
Toute option longue qui doit être spécifiée en ligne de commande lorsque
MySQL fonctionne, peut être aussi configurée dans le fichier d'options (
sans les doubles tirets). Exécutez le programme avec l'option
--help
pour avoir une liste des options disponibles.
Un fichier d'options contient des lignes ayant la forme suivante :
-
#comment
-
Les lignes de commentaires commencent avec
'#'
ou
';'
. Les lignes
vides sont ignorées.
-
[group]
-
group
est le nom du programme ou du groupe pour lequel vous souhaitez configurer
des options. Après une ligne de groupe, toutes les
option
et
set-variable
s'appliqueront au groupe nommé, jusqu'à la fin du fichier d'option ou du démarrage
d'un autre groupe.
-
option
-
Ceci est équivalent à
--option
sur la ligne de commande.
-
option=value
-
Ceci est équivalent à
--option=value
sur la ligne de commande.
-
set-variable = variable=value
-
Ceci est équivalent à
--set-variable variable=value
sur la ligne de commande.
Cette syntaxe doit être utilisée pour spécifier la valeur d'une variable
mysqld
.
Notez que
--set-variable
est obsolète depuis MySQL 4.0,
utilisez simplement
--variable=value
comme tel.
Le groupe
client
vous permet de spécifier des options qui ne s'appliquent
qu'aux clients MySQL et non pas au serveur
mysqld
. C'est le groupe idéal
pour spécifier des mots de passe de connexion au serveur (mais assurez-vous que
vous êtes le seul à accéder à ce fichier !!).
Notez que pour les options et les valeurs, tous les caractères blancs de début
et de fins seront automatiquement effacés. Vous pouvez utiliser les séquences
d'échappement
'\b'
,
'\t'
,
'\n'
,
'\r'
,
'\\'
et
'\s'
dans votre chaîne à la place (
'\s'
== espace).
Voici un exemple typique de fichier d'options globales :
[client] port=3306 socket=/tmp/mysql.sock [mysqld] port=3306 socket=/tmp/mysql.sock set-variable = key_buffer_size=16M set-variable = max_allowed_packet=1M [mysqldump] quick
|
Voici un exemple typique de fichier d'options utilisateur :
[client] # Le mot de passe suivant va être utilisé avec le serveur password=mon_mot_de_passe [mysql] no-auto-rehash set-variable = connect_timeout=2 [mysqlhotcopy] interactive-timeout
|
Si vous avez une distribution source, vous trouverez des exemples de
configuration dans les fichiers nommés
my-xxxx.cnf
dans le dossier
support-files
.
Si vous avez une distribution binaire, regardez dans le dossier
DIR/support-files
, où
DIR
est le chemin de l'installation
MySQL (typiquement
/usr/local/mysql
). Actuellement, il y a des
exemples de configuration pour des systèmes petits, moyens, grands et
très grands. Vous pouvez copier l'un des fichiers
my-xxxx.cnf
dans votre
dossier utilisateur (renommez le fichier en
.my.cnf
) pour le tester.
Tous les clients MySQL qui supportent les fichiers d'options,
acceptent les options suivantes :
Option
|
Description
|
--no-defaults |
Ne lire aucun fichier d'options.
|
--print-defaults |
Affiche le nom du programme et toutes les options qui s'y trouvent.
|
--defaults-file=full-path-to-default-file |
Utilise uniquement le fichier de configuraiton donné.
|
--defaults-extra-file=full-path-to-default-file |
Lit ce fichier de configuration après le fichier de configuration global, mais avant le fichier de configuration utilisateur.
|
Notez que les options ci-dessus doivent être en ligne de commande pour être utilisées !
--print-defaults
peut quand même être utilisé directement après
la commande
--defaults-xxx-file
.
Note pour les développeurs : la gestion des fichiers d'options est implémentée
simplement en traitant toutes les options qui correspondent (c'est à dire,
toutes les options appropriées du groupe), avant les arguments de ligne
de commande. Cela fonctionne bien pour les programmes qui utilisent la dernière
occurrence comme valeur d'option, si elle est spécifiée plusieurs fois. Si vous avez
un vieux programme qui traite les options multiples de cette façon mais ne lit
pas les fichiers d'options, vous n'avez besoin que de deux lignes pour qu'il
accepte cette fonctionnalité. Récupérez le code source de n'importe quel client
MySQL standard pour voir comment le faire.
En scripts shell, vous pouvez utiliser la commande
my_print_defaults
pour analyser
les fichiers de configuration :
shell> my_print_defaults client mysql --port=3306 --socket=/tmp/mysql.sock --no-auto-rehash
|
La ligne ci-dessus affiche toutes les options pour les groupes 'client' et 'mysql'.
|