• Aucun résultat trouvé

Notes relatives `a BSD

Dans le document Manuel MySQL pdf enjeux et pratiques (Page 158-161)

2.6 Notes sp´ecifiques aux syst`emes d’exploitation

2.6.4 Notes relatives `a BSD

Cette section fournit des informations pour les diff´erentes vari´et´es de BSD, ainsi que les versions sp´ecifiques de celles-ci.

2.6.4.1 Notes relatives `a FreeBSD

FreeBSD 3.x est recommand´e pour ex´ecuter MySQL vu que le package des threads est plus int´egr´e.

La fa¸con la plus facile et la plus conseill´ee d’installer est d’utiliser les ports du serveur et du client MySQL disponibles sur http://www.freebsd.org/.

Les utiliser vous donnera :

• Un MySQL fonctionnant avec toutes les optimisations connues pour votre version active

de FreeBSD.

• Configuration et construction automatique.

• Scripts de d´emarrage install´es dans /usr/local/etc/rc.d.

• La possibilit´e de voir tous les fichiers install´es avec pkg info -L. Et la possibilit´e de les

effacer tous avec pkg delete si vous ne voulez plus de MySQL sur cette machine. Il est recommand´e d’utiliser les MIT-pthreads sur FreeBSD 2.x et les threads natifs sur les versions 3 et plus. Il est possible de faire fonctionner le tout avec les threads natifs sur les derni`eres versions 2.2.x mais vous rencontrerez probablement des probl`emes en coupant mysqld.

Le ‘Makefile’ de MySQL requi`ere GNU make (gmake) pour fonctionner. Si vous voulez compiler MySQL vous devez d’abord installer GNU make.

Assurez-vous que votre configuration de la r´esolution des noms est bonne. Sinon, vous airez peut-ˆetre quelques probl`emes lors de la connexion `a mysqld.

Assurez vous que l’entr´ee localhost dans le fichier ‘/etc/hosts’ est correcte (sinon, vous aurez des probl`emes pour vous connecter `a la base de donn´ees). Le fichier ‘/etc/hosts’ doit commencer par :

127.0.0.1 localhost localhost.votre.domaine

La mani`ere recommand´ee de compiler et d’installer MySQL sur FreeBSD avec gcc (2.95.2 et plus) est :

CC=gcc CFLAGS="-O2 -fno-strength-reduce" \

CXX=gcc CXXFLAGS="-O2 -fno-rtti -fno-exceptions -felide-constructors \ -fno-strength-reduce" \

./configure --prefix=/usr/local/mysql --enable-assembler gmake

gmake install

./scripts/mysql_install_db cd /usr/local/mysql

./bin/mysqld_safe &

Si vous vous apercevez que configure utilisera les MIT-pthreads, vous devriez lire les notes relatives aux MIT-pthreads. Voir Section 2.3.6 [MIT-pthreads], page 95.

Si vous obtenez une erreur de make install disant qu’il ne peut trouver ‘/usr/include/pthreads’, configure n’a pas d´etect´e que vous avez besoin des MIT-pthreads. Cela est corrig´e en ex´ecutant ces commandes :

shell> rm config.cache

shell> ./configure --with-mit-threads

FreeBSD est aussi connu pour avoir une petite limite de gestionnaires de fichiers par d´efaut. Voir Section A.2.16 [Not enough file handles], page 694. D´ecommentez la section ulimit -n dans safe mysqld ou enlevez la limite pour l’utilisateur mysqld dans /etc/login.conf (et reg´en´erez le avec cap mkdb). Assurez-vous aussi de d´efinir la classe appropri´ee pour cet utilisateur dans le fichier des mots de passe si vous n’utilisez pas celui par d´efaut. (utilisez : chpass nom-utilisateur-mysqld). Voir Section 4.7.2 [safe_mysqld], page 292.

Si vous avez beaucoup de m´emoire, vous devriez penser `a recompiler le noyau pour permettre `a MySQL d’utiliser plus de 512M de RAM. Regardez l’option MAXDSIZ dans le fichier de configuration de LINT pour plus d’informations.

Si vous avez des probl`emes avec la date courante dans MySQL, configurer la variable d’environnement TZ aidera sˆurement. Voir Annexe F [Environment variables], page 827. Pour obtenir un syst`eme s´ecuris´e et stable, vous ne devez utiliser que les noyaux FreeBSD marqu´es -RELEASE.

2.6.4.2 Notes concernant NetBSD

Pour compiler sur NetBSD vous aurez besoin de GNU make. Sinon, la compilation stoppera lorsque make essayera d’ex´ecuter lint sur les fichiers C++.

2.6.4.3 Notes relatives `a OpenBSD 2.5

Dans la version 2.5 de OpenBSD, vous pouvez compiler MySQL avec les threads natifs avec les options suivantes :

CFLAGS=-pthread CXXFLAGS=-pthread ./configure --with-mit-threads=no

2.6.4.4 Notes relatives `a OpenBSD 2.8

Nos utilisateurs nous ont inform´e que OpenBSD 2.8 comporte un bogue des threads qui pose quelques probl`emes avec MySQL. Les d´eveloppeurs d’OpenBSD ont r´esolu ce probl`eme,

mais depuis le 25 janvier 2001 ce n’est disponible que dans la branche “-current”. Les symptˆomes de ce bogue sont : r´eponses lentes, beaucoup de charge, grande utilisation du CPU, et crashes.

Si vous obtenez une erreur comme Error in accept:: Bad file descriptor ou erreur 9 en essayant d’ouvrir les tables ou les dossiers, le probl`eme est probablement que vous n’avez pas allou´e assez de descripteurs de fichiers `a MySQL.

Dans ce cas, essayez de d´emarrer safe_mysqld en tant que root avec les options suivantes : --user=mysql --open-files-limit=2048

2.6.4.5 Notes relatives aux versions 2.x de BSD/OS

Si vous obtenez l’erreur suivante lors de la compilation de MySQL, votre valeur de ulimit pour la m´emoire vortuelle est trop petite :

item_func.h: In method ‘Item_func_ge::Item_func_ge(const Item_func_ge &)’: item_func.h:28: virtual memory exhausted

make[2]: *** [item_func.o] Error 1

Essayez d’utiliser ulimit -v 80000 et ex´ecutez make `a nouveau. Si cela ne fonctionne pas et que vous utilisez bash, essayez de passer `a csh ou sh; quelques utilisateurs de BSDI ont report´e des probl`emes avec bash et ulimit.

Si vous utilisez gcc, vous aurez peut-ˆetre aussi `a utiliser l’option --with-low-memory de configure pour pouvoir compiler ‘sql_yacc.cc’.

Si vous avez des probl`emes avec la date courante dans MySQL, configurer la variable TZ vous aidera probablement. Voir Annexe F [Environment variables], page 827.

2.6.4.6 Notes relatives aux versions 3.x de BSD/OS

Mettez `a jour `a la version 3.1 de BSD/OS. Si cela n’est pas possible, installez le patch BSDIpatch M300-038.

Utilisez la commande suivante lors de la configuration de MySQL : shell> env CXX=shlicc++ CC=shlicc2 \

./configure \

--prefix=/usr/local/mysql \ --localstatedir=/var/mysql \ --without-perl \

--with-unix-socket-path=/var/mysql/mysql.sock Ce qui suit fonctionne aussi :

shell> env CC=gcc CXX=gcc CXXFLAGS=-O3 \ ./configure \

--prefix=/usr/local/mysql \

--with-unix-socket-path=/var/mysql/mysql.sock

Vous pouvez changer les r´epertoires si vous voulez, ou utiliser les valeurs par d´efaut en ne sp´ecifiant pas de chemins.

Si vous avez des probl`emes de performances alors que la charge est petite, essayez d’utiliser l’option --skip-thread-priority de mysqld ! Cela ex´ecutera tous les threads avec la

mˆeme priorit´e; Sur la version 3.1 de BSDI, cela donne de meilleures performances (en attendant que BSDI corrige sont gestionnaire de threads).

Si vous obtenez l’erreur virtual memory exhausted durant la compilation, vous devez es- sayer en utilisant ulimit -v 80000 et ex´ecutant make `a nouveau. Si cela ne fonctionne pas et que vous utilisez bash, essayez de passer `a csh ou sh; quelques utilisateurs de BSDI ont report´e des probl`emes avec bash et ulimit.

2.6.4.7 Notes relatives aux versions 4.x de BSD/OS

Les versions 4.x de BSDI ont quelques bogues relatifs aux threads. Si vous voulez utiliser MySQL sur ce syst`eme, vous devez installer tous les patches li´es aux threads. vous devez au moins installer M400-023.

Sur quelques syst`emes avec une version 4.x de BSDI, vous pouvez rencontrer des probl`emes avec les librairies partag´ees. Le symptˆome est que vous ne pouvez utiliser aucun programme client, comme par exemple, mysqladmin. Dans ce cas, vous devez le reonfigurer pour qu’il n’utilise pas les librairies paratg´ees avec l’option --disable-shared de configure.

Quelques utilisateurs ont eu avec BSDI 4.0.1 un probl`eme faisant qu’apr`es un bout de temps, le binaire mysqld ne peut plus ouvrir de tables. Cela est du au fait qu’un bogue relatif au syst`eme ou `a la librairie fait changer de r´epertoire `a mysqld sans qu’on ne l’ait demand´e ! La solution est soit de mettre `a jour vers la version 3.23.34 ou de supprimer la ligne #define HAVE_REALPATH de config.h apr`es avoir ex´ecut´e configure et avant d’ex´ecuter make. Notez que ce qui pr´ec`ede signifie que vous ne pouvez pas cr´eer de lien symbolique sur un dossier de bases de donn´ees vers un autre dossier de bases de donn´ees ou lier une table symboliquement vers une autre base de donn´ees sur BSDI ! (Cr´eer un lien symbolique vers un autre disque fonctionne).

2.6.5 Notes relatives `a Mac OS X

Dans le document Manuel MySQL pdf enjeux et pratiques (Page 158-161)