• Aucun résultat trouvé

4.1 Configuration de MySQL

4.1.1 Options de ligne de commande de mysqld

Dans la plupart des cas, vous devrez modifier les options de mysqld dans le fichier d'options. Fichier d'options my.cnf

.

mysqld

et mysqld.server

lisent les options des groupes mysqld

et server

. mysqld_safe

lit les options des groupes

mysqld

, server

, mysqld_safe

et safe_mysqld

. Un serveur MySQL intégré lit généralement les options dans les groupes server

, embedded

et xxxxx_SERVER

, où xxxxx

est le nom de l'application.

mysqld

accepte les options de ligne de commande suivantes :

−−ansi

Utilise la syntaxe ANSI SQL au lieu de la syntaxe MySQL. Exécuter MySQL en mode ANSI .

−b, −−basedir=path

Chemin jusqu'au dossier d'installation. Tous les chemins sont généralement relatifs à celui−ci.

−−big−tables

Autorise la sauvegarde de grands résultats dans des fichiers temporaires. Cela résout le problème des erreurs 'table full', mais ralentit les requêtes alors que des tables en mémoire suffirait. Depuis la version version 3.23.2, MySQL est capable de résoudre automatiquement ce problème en utilisant de la mémoire pour toutes les tables temporaires de petite taille, et en passant sur le disque au besoin.

−−bind−address=IP

L'adresse IP à utiliser.

−−character−sets−dir=path

Dossier contenant les jeux de caractères. Le jeu de caractères utilisé pour les données et le stockage .

−−chroot=path

Met le démon mysqld

en environnement chroot au démarrage. Recommandé pour la sécurité. Cela limite les commandes LOAD DATA INFILE

et SELECT ... INTO OUTFILE

.

−−core−file

Ecrire le fichier core lorsque mysqld

s'arrête inopinéement. Pour certains fichiers, vous devez aussi spécifier −−core−file−size

à safe_mysqld

. safe_mysqld

, le script père de mysqld

. Notez que sur certains systèmes, comme Solaris, vous n'aurez pas de fichier de core si vous avez aussi utilisé l'option −−user

.

−h, −−datadir=path

Chemin jusqu'au dossier des bases.

−−debug[...]=

Si MySQL est configuré avec −−with−debug

, vous pouvez utiliser cette option pour obtenir un fichier de trace de ce que mysqld

fait. Créer des fichiers de traçage .

−−default−character−set=charset

Spécifie le jeu de caractères par défaut. Le jeu de caractères utilisé pour les données et le stockage .

−−default−table−type=type

Spécifie le type de table par défaut. Types de tables MySQL .

−−delay−key−write[= OFF | ON | ALL]

Comment l'option des tables MyISAM DELAYED KEYS

doit être utilisé. Choix des paramètres du serveur .

−−delay−key−write−for−all−tables; En MySQL 4.0.3 vous devez utiliser −−delay−key−write=ALL à la place.

Ne vide pas les buffers de clés entre deux écritures pour les tables MyISAM

. Choix des paramètres du serveur .

−−des−key−file=filename

Lit les clés par défaut utilisées par DES_ENCRYPT()

et DES_DECRYPT()

dans ce fichier.

−−enable−external−locking (was −−enable−locking)

Active le verrouillage système. Notez que si vous utilisez cette option sur un système pour qui lockd

ne fonctionne pas (comme Linux), vous allez bloquer rapidement mysqld avec les verrous.

−−enable−named−pipe

Active le support des tunnels nommés (seulement sur NT/Win2000/XP).

−T, −−exit−info

Cette option est la combinaison d'options que vous pouvez utiliser pour le débogage du serveur mysqld; Si vous ne savez pas ce que ca fait exactement, ne les utilisez pas !

−−flush

Ecrit toutes les données sur le disque après chaque requête SQL. Normalement, MySQL fait des écritures sur le disque après chaque requête, et laisse le système d'exploitation assurer la synchronisation avec le disque. Que faire si MySQL crashe constamment .

−?, −−help

Affiche l'aide courte et termine le programme.

−−init−file=file

Lit les commandes SQL dans ce fichier au démarrage.

−L, −−language=...

Spécifie la langue utilisée pour les messages d'erreur du client. Le chemin complet doit être utilisé. Messages d'erreurs non−anglophones .

−l, −−log[=file]

Enregistre les connexions et les requêtes dans ce fichier. Le log général de requêtes .

−−log−isam[=file]

Enregistre toutes les modifications des tables ISAM/MyISAM dans ce fichier (uniquement nécessaire pour déboguer ISAM/MyISAM).

−−log−slow−queries[=file]

Enregistre toutes les requêtes qui ont pris plus de long_query_time

secondes a s'exécute, dans ce fichier. Le log des requêtes lentes .

−−log−update[=file]

Enregistre les modifications dans le fichier file.#

où #

est un nombre unique si il n'est pas précisé. Le log des mises à jour .

−−log−long−format

Enregistre des informations supplémentaires dans le fichier d'historique. Si vous utilisez l'option −−log−slow−queries

, alors les requêtes que vous qui n'utilisent pas les index sont enregistrées dans le log de requêtes longues.

−−low−priority−updates

Les opérations de modifications de table ( INSERT

/ DELETE

/ UPDATE

) auront une priorité inférieure aux sélections. Cela peut être aussi fait via l'attribut {INSERT | REPLACE | UPDATE | DELETE} LOW_PRIORITY ...

pour baisser la priorité d'une requête, ou avec SET LOW_PRIORITY_UPDATES=1

pour changer la priorité dans plus d'un thread. Problèmes avec le verrouillage de tables .

−−memlock

Verrouille le processus mysqld

en mémoire. Cela fonctionne si votre système support la

fonction mlockall()

(comme Solaris). Ceci peut être utile si vous avez des problèmes avec le système d'exploitation qui force mysqld

a utiliser le swap sur le disque.

−−myisam−recover [=option[,option...]]]

Cette option est la combinaison de DEFAULT

, BACKUP

, FORCE

et QUICK

. Vous pouvez aussi lui donner la valeur explicite de ""

si vous voulez désactiver cette option. Si cette option est utilisée, mysqld

va vérifier si la table est marquée comme corrompue à l'ouverture de chaque table (cette dernière option ne fonctionne que si vous utilisez l'option

−−skip−external−locking

). Si c'est le cas, mysqld

va essayer de vérifier la table. Si la table était corrompue, mysqld

essaie alors de la réparer.

L'option suivante va affecter la manière avec la quelle la réparation s'effectue.

Option Description

DEFAULT Identique à ne pas donner d'option à −−myisam−recover .

BACKUP Si la table a été modifiée durant la réparation, sauver une copie du fichier table_name.MYD , sous le nom de table_name−datetime.BAK .

FORCE Exécute une réparation même si nous allons perdre une ou plusieurs lignes dans le fichier .MYD. QUICK Ne vérifie pas les lignes dans la table si il n'y a pas eu d'effacement.

Avant que la table ne soit automatiquement réparée, MySQL va ajouter une note dans le fichier de log d'erreurs. Si vous voulez être capable de restaurer la plupart des erreurs sans intervention de l'utilisateur, il vaut utiliser les options BACKUP,FORCE

. Cela va forcer la réparation de la table, même si quelques lignes sont effacées, et conserve le vieux fichier de données comme sauvegarde, pour examen ultérieur.

−−pid−file=path

Le chemin jusqu'au fichier de pid utilisé par safe_mysqld

.

−P, −−port=...

Numéro de port utilisé pour attendre les connexion TCP/IP.

−o, −−old−protocol

Utilise le protocole 3.20, pour la compatibilité avec de très vieux clients. Upgrading from Version 3.20 to 3.21 .

−−one−thread

Utilise uniquement un thread (pour débogage sous Linux). Déboguer un serveur MySQL .

−O, −−set−variable var=option

Donne une valeur à une variable. −−help

liste ces variables. Vous pouvez trouver une description complète des variables dans la section sur la commande SHOW VARIABLES

de ce manuel. SHOW VARIABLES

. La section de paramétrage inclut des informations sur comment exploiter ces variables. Notez que −−set−variable

est obsolète depuis MySQL 4.0, utilisez simplement la syntaxe −−var=option

. Choix des paramètres du serveur . En MySQL 4.0.2, il est possible de changer une variable directement avec la syntaxe

−−variable−name=option

et set−variable

n'est plus nécessaire dans le fichier de configuration. Si vous voulez restreindre la valeur maximale que peut prendre une option via la commande SET

, vous pouvez définir une limite en utilisant l'option de ligne de commande −−maximum−variable−name

. Syntaxe de SET

.

Notez que lorsque vous donnez une valeur à une variable, MySQL peut corriger automatiquement votre valeur pour rester dans un intervalle donné, et ajuster un peu la valeur pour qu'elle soit optimale.

−−safe−mode

Ignore certains étapes d'optimisation.

−−safe−show−database

Avec cette option, la commande SHOW DATABASES

retourne uniquemnt les bases pour lesquelles l'utilisateur a des droits. Depuis la version 4.0.2, cette option est

abandonnée, et ne fait plus rien (l'option est activée par défaut) car nous avons désormais le droit de SHOW DATABASES

. Syntaxe de GRANT

et REVOKE

.

−−safe−user−create

Si cette option est activée, un utilisateur ne peut pas créer de nouveaux utilisateurs avec la commande GRANT si l'utilisateur n'a pas les droits de INSERT

dans la table

mysql.user

ou dans aucune colonne de cette table.

−−skip−bdb

Désactive l'utilisation des tables BDB. Cela va économiser de la mémoire et accélérer le serveur un peu.

−−skip−concurrent−insert

Désactive la possibilité de sélectionner et insérer en même temps dans les tables

MyISAM

(cela n'est utile que si vous pensez que vous avez trouvé un bug dans cette fonctionnalité).

−−skip−delay−key−write; En MySQL 4.0.3, il est recommandé d'utiliser l'option

−−delay−key−write=OFF à la place. Ignorez l'option DELAY_KEY_WRITE

de toutes les tables. Choix des paramètres du serveur .

−−skip−grant−tables

Cette option force le serveur à ne pas utiliser le système de privilège du tout. Cela donne à tous l' accès complet à toutes les bases de données ! Vous pouvez demander à un serveur en exécution d'utiliser à nouveau les tables de droits en exécutant la commande mysqladmin flush−privileges

ou mysqladmin reload

).

−−skip−host−cache

Ne pas utiliser le cache de nom de domaine pour une résolution des IP plus rapide, mais interroger le serveur DNS à chaque connexion. Comment MySQL utilise les DNS .

−−skip−innodb

Désactive l'utilisation des tables InnoDB

. Cela va économiser de la mémoire et accélérer le serveur un peu.

−−skip−external−locking (ancien −−skip−locking)

Ne pas utiliser le verrouillage du système. Pour utiliser les utilitaires isamchk

ou myisamchk

vous devez alors éteindre le système. Degré de stabilité de MySQL . Notez qu'en MySQL version 3.23 vous pouvez utiliser la commande REPAIR

et CHECK

pour réparer ou vérifier des tables MyISAM

tables.

−−skip−name−resolve

Les noms d'hôtes ne sont pas résolus. Toutes les colonnes Host

dans vos tables de droits doivent être des IP numériques ou le mot localhost

. Comment MySQL utilise les DNS .

−−skip−networking

Ne pas attendre les connexions TCP/IP du tout. Toutes les interactions du serveur

mysqld

seront faites avec les sockets Unix. Cette option est particulièrement recommandée pour les systèmes qui utilisent des requêtes locales. Comment MySQL utilise les DNS .

−−skip−new

Ne pas utiliser les nouvelles routines qui sont possiblement erronées.

−−skip−symlink

Ne pas effacer ou renommer les fichiers qui ont un lien symbolique dans le dossier de données.

−−skip−safemalloc

Si MySQL est configuré avec −−with−debug=full

, tous les programmes vérifieront la

mémoire pour rechercher les écrasment de zone lors des allocations et libérations de mémoire. Comme ce test est lent, vous pouvez l'éviter, si vous n'avez pas besoin de tester la mémoire, en utilisant cette option.

−−skip−show−database

Ne pas autoriser la commande SHOW DATABASES

, a moins que l'utilisateur n'ait les droits de

SHOW DATABASES

. Depuis la version 4.0.2, vous n'avez plus besoin de cette option, car les droits pour ce faire sont distribués avec le droit de SHOW DATABASES

.

−−skip−stack−trace

Ne pas écrire les piles de traces. Cette option est pratique lorsque vous utilisez mysqld

avec un débogueur. Sur certains systèmes, vous devez aussi utiliser cette option pour obtenir un fichier de core. Déboguer un serveur MySQL .

−−skip−thread−priority

Désactive la priorisation des threads pour améliorer la vitesse de réponse.

−−socket=path

Le fichier de socket à utiliser pour les connexions locales, au lieu du fichier par défaut /tmp/mysql.sock

.

−−sql−mode=option[,option[,option...]]

Cette option peut être la combinaison de : REAL_AS_FLOAT

, PIPES_AS_CONCAT , ANSI_QUOTES , IGNORE_SPACE , SERIALIZE et ONLY_FULL_GROUP_BY

. Ellep peut aussi être vide ( ""

) si vous voulez remettre cette option à 0.En spécifiant toutes les options ci−dessus, vous obtiendrez le même effet qu'avec l'option −−ansi. Avec cette option, vous pouvez activer les modes SQL dont vous avez besoin. Exécuter MySQL en mode ANSI .

−−temp−pool

En utilisant cette option, vous allez réduire le jeu de noms qui sont utilisés lors de la création de fichier temporaires, plutôt qu'un nom unique à chaque fois. Ceci est un palliatif au noyau Linux qui crèe plusieurs fichiers nouveaux avec des noms

différents. Avec l'ancien comportement, Linux semble 'perdre de la mémoire', car ils sont alloués au cache d'entrées du dossier au lieu de celui du disque.

−−transaction−isolation= { READ−UNCOMMITTED | READ−COMMITTED | REPEATABLE−READ | SERIALIZABLE }

Configure le niveau d'isolation des transactions. Syntaxe de SET TRANSACTION

.

−t, −−tmpdir=path

Chemin vers les fichiers temporaires. Il peut s'avérer pratique si votre dossier par défaut /tmp

réside dans une partition qui est trop petite pour absorber les tables temporaires.

−u, −−user= [user_name | userid]

Exécute le démon mysqld

avec l'utilisateur user_name

ou userid

(numérique). Cette option est

obligatoire lorsque vous démarrez mysqld

en tant que root.

−V, −−version

Affiche les informations de version.

−W, −−log−warnings (Was −−warnings)

Enregistre les alertes comme Aborted connection...

dans le fichier .err

. Erreurs de communication / connexion annulée .

Il est possible de modifier la plupart des valeurs durant l'exécution, avec la commande SET

command. Syntaxe de SET

.

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