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 13.5.2.8, « 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 24.2.15, « 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.8, « Notes spécifiques aux systèmes d'exploitation ».
This is a translation of the MySQL Reference Manual that can be found at dev.mysql.com. The original Reference Manual is in English, and this translation is not necessarily as up to date as the English version.