| 2.3 Installation de MySQL avec une distribution source
 2 Installer MySQL
 Manuel de Référence MySQL 4.1 : Version Française
 
 . Installation depuis les sources : présentation
 ->Options habituelles de configure
 . Installer à partir de l'arbre source de développement
 . Problèmes de compilation?
 . Notes relatives aux MIT-pthreads
 . La distribution source Windows
 . Compiler les clients MySQL sous Windows
 
 
 | 
  2.3.2 Options habituelles de configure       
 
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.   Variables d'environnement MySQL . 
Pour une liste des options supportées par 
 
configure
 , exécutez cette commande :
 Les options de  
configure
  les plus utilisées
sont décrites ici :| 
shell> ./configure --help
 | 
 
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 : 
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.  Utiliser les fichiers d'options .| 
shell> ./configure --prefix=/usr/local/mysqlshell> ./configure --prefix=/usr/local \
 --localstatedir=/usr/local/mysql/data
 | 
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 : 
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. 
 Comment protéger 
/tmp/mysql.sock
 .| 
shell> ./configure \--with-unix-socket-path=/usr/local/mysql/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++ : 
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é.| 
shell> CC=gcc CXX=gcc ./configure
 | 
 
Voici quelques variables d'environnement à définir selon le compilateur
que vous utilisez :
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 : En d'autres termes, la ligne de configuration ressemble à ce qui suit
pour les versions récentes de gcc :| 
--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.  Les compiliations de MySQL 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.
 Comment la compilation et les liaisons affectent la vitesse de MySQL .| 
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
 | 
 
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
  :
 
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
 .
 Le jeu de caractères utilisé pour les données et le stockage .| 
shell> ./configure --with-charset=CHARSET
 | 
 
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
  :
 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é.| 
shell> ./configure --with-collation=COLLATION
 | 
 
Si vous voulez convertir les caractères entre le serveur et le client,
regardez du côté de la commande  
SET CHARACTER SET
 .
 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
  :
 
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.
 Déboguer un serveur MySQL .| 
shell> ./configure --with-debug
 | 
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.   Comment programmer une client 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.
 Remarques spécifiques aux systèmes d'exploitation .
 |