:: DEVELOPER ZONE
Le script configure vous donne un bon moyen de
contrôler la configuration de votre distribution MySQL.
Habituellement, vous faites cela en spécifiant
les options dans la ligne de commande de configure.
Vous pouvez aussi affecter le comportement de
configure en utilisant certaines variables
d'environnement. See Annexe E, Variables d'environnement.
Pour une liste des options supportées par
configure, exécutez cette commande :
shell> ./configure --help
Les options de configure les plus utilisées
sont décrites ici :
Pour ne compiler que les bibliothèques et programmes clients,
et non le serveur, utilisez l'option --without-server :
shell> ./configure --without-server
Si vous n'avez pas de compilateur C++, mysql ne compilera
pas (c'est le programme client qui requière C++). Dans ce
cas, vous pouvez supprimer la partie de code dans configure
qui vérifie l'existence d'un compilateur C++, puis
exécuter ./configure avec l'option
--without-server. La compilation essaiera encore de construire
mysql, mais vous pouvez ignorer les messages d'erreurs
concernant mysql.cc. (Si make stoppe, essayez
make -k pour dire de continuer même si on
rencontre des erreurs.)
Si vous voulez obtenir une bibliothèque MySQL intégrée
(libmysqld.a) vous devez utiliser l'option
--with-embedded-server.
Si vous ne voulez pas que vos fichiers de log et bases de
données soient dans /usr/local/var, utiliser
une commande configure se rapprochant de l'une
des commandes suivantes :
shell> ./configure --prefix=/usr/local/mysql
shell> ./configure --prefix=/usr/local \
--localstatedir=/usr/local/mysql/data
La première change le préfixe de l'installation
pour que tout soit installé dans /usr/local/mysql
au lieu de /usr/local par défaut. La seconde commande
préserve le préfixe d'installation par défaut
mais change le répertoire par défaut pour les bases
de données (normalement /usr/local/var) en
/usr/local/mysql/data.
Après que vous ayez compilé MySQL, vous pouvez changer
ces options dans les fichiers d'options. See Section 4.3.2, « Fichier d'options my.cnf ».
Si vous utilisez Unix et que vous voulez que la socket de MySQL
soit à un autre endroit que celui par défaut
(normalement /tmp ou /var/run) utilisez une commande
configure comme celle-ci :
shell> ./configure \
--with-unix-socket-path=/usr/local/mysql/tmp/mysql.sock
Notez que le fichier donné doit avoir un chemin absolu !
Vous pourrez aussi changer le chemin vers mysql.sock plus tard
en utilisant les fichiers d'options de MySQL.
See Section A.4.5, « Comment protéger ou changer le fichier socket /tmp/mysql.sock ».
Si vous voulez compiler des programmes liés statiquement (par exemple,
pour créer une distribution binaire, pour obtenir plus de vitesse,
ou pour résoudre des problèmes avec quelques distributions RedHat
Linux), exécutez configure de la manière suivante :
shell> ./configure --with-client-ldflags=-all-static \
--with-mysqld-ldflags=-all-static
Si vous utilisez gcc et n'avez pas libg++ ou libstdc++
d'installés, vous pouvez dire à configure d'utiliser gcc
en tant que compilateur C++ :
shell> CC=gcc CXX=gcc ./configure
Quand vous utilisez gcc en tant que compilateur C++, aucune
tentative de liaison avec libg++ ou libstdc++ ne sera
effectuée. Il peut être bon d'utiliser cette méthode même si vous
avez les bibliothèques citées, car quelques versions de celles-ci ont
causé des problèmes à des utilisateurs MySQL par le passé.
Voici quelques variables d'environnement à définir selon le compilateur que vous utilisez :
gcc 2.7.2 :
CC=gcc CXX=gcc CXXFLAGS="-O3 -felide-constructors"
egcs 1.0.3a :
CC=gcc CXX=gcc CXXFLAGS="-O3 -felide-constructors \ -fno-exceptions -fno-rtti"
gcc 2.95.2 :
CFLAGS="-O3 -mpentiumpro" CXX=gcc CXXFLAGS="-O3 -mpentiumpro \ -felide-constructors -fno-exceptions -fno-rtti"
pgcc 2.90.29 ou plus récent :
CFLAGS="-O3 -mpentiumpro -mstack-align-double" CXX=gcc \ CXXFLAGS="-O3 -mpentiumpro -mstack-align-double \ -felide-constructors -fno-exceptions -fno-rtti"
Dans la plupart des cas, vous pouvez obtenir un binaire MySQL raisonnablement optimal en utilisant les options de la table précédente et en ajoutant les options suivantes aux lignes de configuration :
--prefix=/usr/local/mysql --enable-assembler \ --with-mysqld-ldflags=-all-static
En d'autres termes, la ligne de configuration ressemble à ce qui suit pour les versions récentes de gcc :
CFLAGS="-O3 -mpentiumpro" CXX=gcc CXXFLAGS="-O3 -mpentiumpro \ -felide-constructors -fno-exceptions -fno-rtti" ./configure \ --prefix=/usr/local/mysql --enable-assembler \ --with-mysqld-ldflags=-all-static
Les binaires que nous fournissons sur le site de MySQL à http://www.mysql.com/ sont tous compilés avec une optimisation totale et devraient être parfaits pour la plupart des utilisateurs. See Section 2.1.2.5, « Binaires compilés par MySQL AB ». Il y a quelques choses que vous pouvez modifier pour rendre le binaire encore plus rapide, mais cela est réservé aux utilisateurs avancés. See Section 7.5.4, « Influences de la compilation et des liaisons sur la vitesse de MySQL ».
Si la génération échoue et produit des erreurs disant que votre
compilateur ou outil de liaison n'est pas capable de créer la
bibliothèque partagée libmysqlclient.so.# ('#' étant un
numéro de version), vous pouvez contourner ce problème en donnant
l'option --disable-shared à configure. Dans ce cas,
configure ne générera pas de bibliothèque partagée
libmysqlclient.so.#.
Par défaut, MySQL utilise le jeu de caractères ISO-8859-1 (Latin1).
Pour changer le jeu par défaut, utilisez l'option --with-charset :
shell> ./configure --with-charset=CHARSET
CHARSET peut être l'un des big5, cp1251, cp1257,
czech, danish, dec8, dos, euc_kr,
gb2312, gbk, german1, hebrew, hp8,
hungarian, koi8_ru, koi8_ukr, latin1,
latin2, sjis, swe7, tis620, ujis,
usa7, ou win1251ukr.
See Section 5.8.1, « Le jeu de caractères utilisé pour les données et le stockage ».
Depuis MySQL 4.1.1, la collation par défaut peut aussi être spécifiée.
MySQL utilise la collation latin1_swedish_ci. Pour le changer,
utilisez l'option --with-collation :
shell> ./configure --with-collation=COLLATION
Pour changer le jeu de caractères et la collation, utilisez les options
--with-charset et --with-collation. La collation doit être
valide pour le jeu de caractères spécifié. Utilisez la commande
SHOW COLLATION pour déterminer les collations valides pour un
jeu de caractères donné.
Si vous voulez convertir les caractères entre le serveur et le client,
regardez du côté de la commande SET CHARACTER SET.
See Section 14.5.3.1, « Syntaxe de SET ».
Attention : Si vous changez les jeux de caractères après
avoir crée des tables, vous devrez exécuter
myisamchk -r -q --set-character-set=charset sur chaque table.
Vos index pourraient être stockés de manière incorrecte sinon.
(Cela peut survenir si vous installez MySQL, créez quelques tables,
puis reconfigurez MySQL pour qu'il utilise un jeu de caractères différent
et le réinstallez.)
Avec l'option --with-extra-charsets=LIST vous pouvez définir
les jeux de caractères additionnels à compiler dans le serveur.
Ici LIST est soit une liste de jeux de caractères séparés par
des espaces, soit complex pour inclure tous les jeux de caractères
ne pouvant être chargés dynamiquement, ou encore all pour inclure
tous les jeux de caractères dans les binaires.
Pour configurer MySQL avec le code de débogage, utilisez l'option
--with-debug :
shell> ./configure --with-debug
Cela alloue un vérificateur d'allocation de mémoire qui peut trouver quelques erreurs et qui fournit des informations sur ce qui se produit. See Section D.1, « Déboguer un serveur MySQL ».
Si vos programmes clients utilisent les threads, vous avez besoin de compiler
une version sûre pour les threads de la bibliothèque du client MySQL avec
l'option de configuration --enable-thread-safe-client. Cela créera
une bibliothèque libmysqlclient_r avec laquelle vous devez lier vos
applications threadées. See Section 21.2.14, « Comment faire un client MySQL threadé ».
Les options relatives à un système d'exploitation particulier peuvent être trouvées dans la section spécifique aux systèmes de ce manuel. See Section 2.6, « Notes spécifiques aux systèmes d'exploitation ».
© 1995-2005 MySQL AB. All rights reserved.
