• Aucun résultat trouvé

2.6 Notes spécifiques aux systèmes d'exploitation

2.6.4 Notes relatives à BSD

Cette section fournit des informations pour les différentes variétés de BSD, ainsi que les versions spécifiques de celles−ci.

2.6.4.1 Notes relatives à FreeBSD

FreeBSD 3.x est recommandé pour exécuter MySQL vu que le package des threads est plus intégré.

La façon la plus facile et la plus conseillée 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émarrage installés dans /usr/local/etc/rc.d.

La possibilité de voir tous les fichiers installés avec pkg_info −L. Et la possibilité de les effacer tous avec pkg_delete si vous ne voulez plus de MySQL sur cette machine.

Il est recommandé 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ères versions 2.2.x mais vous rencontrerez probablement des problèmes en coupant mysqld

.Le Makefile

de MySQL requière 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ésolution des noms est bonne. Sinon, vous airez peut−être quelques problèmes lors de la connexion à mysqld

. Assurez vous que l'entrée localhost

dans le fichier /etc/hosts

est correcte (sinon, vous aurez des problèmes pour vous connecter à la base de données). Le fichier /etc/hosts

doit commencer par :

127.0.0.1 localhost localhost.votre.domaine

La manière recommandée 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. Remarques sur MIT−pthreads .

Si vous obtenez une erreur de make install

disant qu'il ne peut trouver /usr/include/pthreads

, configure

n'a pas détecté que vous avez besoin des MIT−pthreads. Cela est corrigé en exécutant 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éfaut. Fichier non trouvé . Décommentez la section ulimit −n dans safe_mysqld ou enlevez la limite pour

l'utilisateur mysqld

dans /etc/login.conf (et regénérez le avec cap_mkdb). Assurez−vous aussi de définir la classe appropriée pour cet utilisateur dans le fichier des mots de passe si vous n'utilisez pas celui par défaut. (utilisez : chpass nom−utilisateur−mysqld). safe_mysqld

, le script père de mysqld

. Si vous avez beaucoup de mémoire, vous devriez penser à recompiler le noyau pour permettre à 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èmes avec la date courante dans MySQL, configurer la variable d'environnement TZ

aidera sûrement. Variables d'environnement MySQL .

Pour obtenir un système sécurisé et stable, vous ne devez utiliser que les noyaux FreeBSD marqués −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écuter lint

sur les fichiers C++.

2.6.4.3 Notes relatives à 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 à OpenBSD 2.8

Nos utilisateurs nous ont informé que OpenBSD 2.8 comporte un bogue des threads qui pose quelques problèmes avec MySQL. Les développeurs d'OpenBSD ont résolu ce problème, mais depuis le 25 janvier 2001 ce n'est disponible que dans la branche ``−current''. Les symptômes de ce bogue sont : réponses 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ème est probablement que vous n'avez pas alloué assez de

descripteurs de fichiers à MySQL.

Dans ce cas, essayez de démarrer 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émoire 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écutez make

à nouveau. Si cela ne fonctionne pas et que vous utilisez bash

, essayez de passer à csh

ou sh

; quelques utilisateurs de BSDI ont reporté des problèmes

avec bash

et ulimit

. Si vous utilisez gcc

, vous aurez peut−être aussi à utiliser l'option −−with−low−memory

de configure

pour pouvoir compiler sql_yacc.cc

.

Si vous avez des problèmes avec la date courante dans MySQL, configurer la variable TZ

vous aidera probablement. Variables d'environnement MySQL .

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

Mettez à jour à 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épertoires si vous voulez, ou utiliser les valeurs par défaut en ne spécifiant pas de chemins.Si vous avez des problèmes de performances alors que la charge est petite, essayez d'utiliser l'option −−skip−thread−priority

de mysqld

! Cela exécutera tous les threads avec la même priorité; 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 essayer en utilisant

ulimit −v 80000

et exécutant make

à nouveau. Si cela ne fonctionne pas et que vous utilisez bash

, essayez de passer à csh

ou sh

; quelques utilisateurs de BSDI ont reporté des problèmes 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ème, vous devez installer tous les patches liés aux threads. vous devez au moins installer M400−023.

Sur quelques systèmes avec une version 4.x de BSDI, vous pouvez rencontrer des problèmes avec les librairies partagées. Le symptôme 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ées avec l'option −−disable−shared

de configure.

Quelques utilisateurs ont eu avec BSDI 4.0.1 un problème faisant qu'après un bout de temps, le binaire mysqld

ne peut plus ouvrir de tables. Cela est du au fait qu'un bogue relatif au système ou à la librairie fait changer de répertoire à mysqld

sans qu'on ne l'ait demandé !

La solution est soit de mettre à jour vers la version 3.23.34 ou de supprimer la ligne #define HAVE_REALPATH

de config.h

après avoir exécuté configure

et avant d'exécuter make

.

Notez que ce qui précède signifie que vous ne pouvez pas créer de lien symbolique sur un dossier de bases de données vers un autre dossier de bases de données ou lier une table symboliquement vers une autre base de données sur BSDI ! (Créer un lien symbolique vers un autre disque

fonctionne).