• Aucun résultat trouvé

Options habituelles de configure

Dans le document Manuel MySQL pdf enjeux et pratiques (Page 113-116)

2.3 Installer MySQL `a partir des sources

2.3.3 Options habituelles de configure

Le script configure vous donne un bon moyen de contrˆoler la configuration de votre dis- tribution MySQL. Habituellement, vous faites cela en sp´ecifiant les options dans la ligne de commande de configure. Vous pouvez aussi affecter le comportement de configure en utilisant certaines variables d’environnement. Voir Annexe F [Environment variables], page 827. Pour une liste des options support´ees par configure, ex´ecutez cette commande :

shell> ./configure --help

Les options de configure les plus utilis´ees sont d´ecrites ici :

• Pour ne compiler que les librairies 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`ere C++). Dans ce cas, vous pouvez supprimer la partie de code dans configure qui v´erifie l’existence d’un compilateur C++, puis ex´ecuter ./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ˆeme si on rencontre des erreurs.)

• Si vous voulez obtenir une librairie MySQL embarqu´ee (libmysqld.a) vous devez

utiliser l’option --with-embedded-server.

• Si vous ne voulez pas que vos fichiers de log et bases de donn´ees 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 \

La premi`ere change le pr´efixe de l’installation pour que tout soit install´e dans ‘/usr/local/mysql’ au lieu de ‘/usr/local’ par d´efaut. La seconde commande pr´eserve le pr´efixe d’installation par d´efaut mais change le r´epertoire par d´efaut pour les bases de donn´ees (normalement ‘/usr/local/var’) en /usr/local/mysql/data. Apr`es que vous ayez compil´e MySQL, vous pouvez changer ces options dans les fichiers d’options. Voir Section 4.1.2 [Option files], page 198.

• Si vous utilisez Unix et que vous voulez que la socket de MySQL soit `a un autre

endroit que celui par d´efaut (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´e doit avoir un chemin absolu ! Vous pourrez aussi changer le

chemin vers ‘mysql.sock’ plus tard en utilisant les fichiers d’options de MySQL. Voir Section A.4.5 [Problems with mysql.sock], page 702.

• Si vous voulez compiler des programmes li´es statiquement (par exemple, pour cr´eer une

distribution binaire, pour obtenir plus de vitesse, ou pour r´esoudre des probl`emes avec quelques distributions RedHat Linux), ex´ecutez configure de la mani`ere 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´es, vous pouvez dire `a

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´ee. Il peut ˆetre bon d’utiliser cette m´ethode mˆeme si vous avez les librairies cit´ees, car quelques versions de celles-ci ont caus´e des probl`emes `a des utilisateurs MySQL par le pass´e.

Voici quelques variables d’environnement `a d´efinir selon le compilateur que vous utilisez :

Compilateur Options recommand´ees

gcc 2.7.2.1 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´ecent

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 opti- mal en utilisant les options de la table pr´ec´edente 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 `a ce qui suit pour les versions r´ecentes de gcc :

-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 `a http://www.mysql.com/ sont tous compil´es avec une optimisation totale et devraient ˆetre parfaits pour la plupart des utilisateurs. Voir Section 2.2.7 [MySQL binaries], page 80. Il y’a quelques choses que vous pouvez modifier pour rendre le binaire encore plus rapide, mais cela est r´eserv´e aux utilisateurs avanc´es. Voir Section 5.5.3 [Compile and link options], page 392. Si la g´en´eration ´echoue et produit des erreurs disant que votre compilateur ou outil de liaison n’est pas capable de cr´eer la librairie partag´ee ‘libmysqlclient.so.#’ (‘#’ ´etant un num´ero de version), vous pouvez contourner ce probl`eme en donnant l’option --disable-shared `a configure. Dans ce cas, configure ne g´en´erera pas de librairie partag´ee ‘libmysqlclient.so.#’.

• Vous pouvez configurer MySQL pour qu’il n’utilise pas les valeurs DEFAULT pour les

colonnes non-NULL (c’est `a dire, les colonnes qui ne peuvent ˆetre NULL). Cela fait g´en´erer des erreurs aux requˆetes INSERT si vous ne sp´ecifiez pas explicitement une valeur pour toutes les colonnes non-NULL. Pour supprimer l’utilisation des valeurs par d´efaut, ex´ecutez configure de cette fa¸con :

shell> CXXFLAGS=-DDONT_USE_DEFAULT_FIELDS ./configure

• Par d´efaut, MySQL utilise le jeu de caract`eres ISO-8859-1 (Latin1). Pour changer le

jeu par d´efaut, utilisez l’option --with-charset : shell> ./configure --with-charset=CHARSET

CHARSET peut ˆetre 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. Voir Section 4.6.1 [Character sets], page 286.

Si vous voulez convertir les caract`eres entre le serveur et le client, regardez du cˆot´e de la commande SET CHARACTER SET. Voir Section 5.5.6 [SET], page 396.

Attention : Si vous changez les jeux de caract`eres apr`es avoir cr´ee des tables, vous devrez ex´ecuter myisamchk -r -q --set-character-set=charset sur chaque table. Vous index pourraient ˆetre stock´es de mani`ere incorrecte sinon. (Cela peut survenir si vous installez MySQL, cr´eez quelques tables, puis reconfigurez MySQL pour qu’il utilise un jeu de caract`eres diff´erent et le r´einstallez.)

Avec l’option --with-extra-charsets=LIST vous pouvez d´efinir les jeux de caract`eres additionnels `a compiler dans le serveur.

Ici LIST est soit une liste de jeux de caract`eres s´epar´es par des espaces, soit complex pour inclure tous les jeux de caract`eres ne pouvant ˆetre charg´es dynamiquement, ou encore all pour inclure tous les jeux de caract`eres dans les binaires.

• Pour configurer MySQL avec le code de d´ebogage, utilisez l’option --with-debug :

shell> ./configure --with-debug

Cela alloue un v´erificateur d’allocation de m´emoire qui peut trouver quelques erreurs et qui fournit des informations sur ce qui se produit. Voir Section E.1 [Debugging server], page 814.

• Si vos programmes clients utilisent les threads, vous avez besoin de compiler une version

sˆure pour les threads de la librairie du client MySQL avec l’option de configuration --enable-thread-safe-client. Cela cr´eera une librairie libmysqlclient_r avec laquelle vous devez lier vos applications thread´ees. Voir Section 8.4.8 [Threaded clients], page 660.

• Les options relatives `a un syst`eme d’exploitation particulier peuvent ˆetre trouv´ees dans

la section sp´ecifique aux syst`emes de ce manuel. Voir Section 2.6 [Operating System Specific Notes], page 113.

Dans le document Manuel MySQL pdf enjeux et pratiques (Page 113-116)