2.3 Installer MySQL à partir des sources
2 Installation de MySQL
Manuel de Référence MySQL 4.1 : Version Française
. Vue d'ensemble de l'installation rapide . Appliquer des patches . 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
|
2.3.6 Notes relatives aux MIT-pthreads
Cette section décrit quelques informations concernant l'utilisation des MIT-pthreads.
Notez que sur Linux vous
ne
devez
pas
utiliser les MIT-pthreads mais
installer LinuxThreads !
Notes relatives à Linux (toutes les versions de Linux) .
Si votre système ne fournit pas un support natif des threads, vous aurez besoin de
construire MySQL en utilisant le package des MIT-pthreads. Cela inclut les anciens
systèmes FreeBSD, SunOS 4.x, Solaris 2.4 et plus ancien, et quelques autres systèmes.
Systèmes d'exploitation supportés par MySQL .Notez qu'à partir de la version 4.0.2 de MySQL les MIT-pthreads ne font plus partie
de la distribution des sources ! si vous avez besoin de ce package, vous pouvez
l'obtenir sur http://www.mysql.com/Downloads/Contrib/pthreads-1_60_beta6-mysql.tar.gz Après l'avoir récupéré, décompressez l'archive dans le
répertoire racine de votre répertoire des sources de MySQL. Cela créera
le répertoire
mit-pthreads
.
-
Sur la plupart des systèmes, vous pouvez forcer l'utilisation des MIT-pthreads en
exécutant
configure
avec l'option
--with-mit-threads
:
shell> ./configure --with-mit-threads
|
La compilation dans un dossier non-sources n'est pas supporté lors de l'utilisation
des MIT-pthreads car nous voulons minimiser les changements de leur code.
-
La vérification pour l'utilisation des MIT-pthreads ne survient que durant la partie
du processus de configuration qui s'occupe du code du serveur. Si vous avez configuré
la distribution en utilisant
--without-server
pour ne construire que le client,
les clients ne sauront pas si les MIT-pthreads sont utilisés et utiliserons les socket
Unix pour les connexions par défaut.
Puisque les sockets Unix ne fonctionnent pas avec les MIT-pthreads sur certaines
plate-formes, cela signifie que vous devrez utiliser
-h
ou
--host
quand
vous exécuterez les programmes clients.
-
Lorsque MySQL est compilé en utilisant les MIT-pthreads, le verrouillage
système est désactivé par défaut pour des soucis de performances. Vous
pouvez demander au serveur d'utiliser les verrous systèmes avec l'option
--external-locking
. Cela n'est requis que si vous avez besoin de
faire fonctionner deux serveurs MySQL avec les mêmes données (non recommandé).
-
De temps en temps, la commande
bind()
des pthreads n'arrive pas à attacher
une socket sans afficher d'erreurs (du mois, sous Solaris). Le résultat est que
toutes les connexions au serveur échouent.
Par exemple :
shell> mysqladmin version mysqladmin: connect to server at '' failed; error: 'Can't connect to mysql server on localhost (146)'
|
La solution est de terminer le serveur
mysqld
et de le redémarrer.
Cela ne nous est arrivé que quand nous avons forcé le serveur à se terminer
et que nous l'avons redémarré immédiatement après.
-
Avec les MIT-pthreads, l'appel système à
sleep()
n'est pas interruptible avec
SIGINT
(break). On ne s'en rend compte que quand on exécute
mysqladmin --sleep
.
Vous devez attendre que l'appel système à
sleep()
se termine avant que le processus
ne s'arrête.
-
Lors de la liaison, vous pouvez obtenir des messages d'erreurs comme ceux-ci (du moins
sur Solaris); ils peuvent être ignorés :
ld: warning: symbol `_iob' has differing sizes: (file /my/local/pthreads/lib/libpthread.a(findfp.o) value=0x4; file /usr/lib/libc.so value=0x140); /my/local/pthreads/lib/libpthread.a(findfp.o) definition taken ld: warning: symbol `__iob' has differing sizes: (file /my/local/pthreads/lib/libpthread.a(findfp.o) value=0x4; file /usr/lib/libc.so value=0x140); /my/local/pthreads/lib/libpthread.a(findfp.o) definition taken
|
-
D'autres avertissements peuvent être ignorés :
implicit declaration of function `int strtoll(...)' implicit declaration of function `int strtoul(...)'
|
-
Nous n'avons pas réussi à faire fonctionner
readline
avec les MIT-pthreads.
(Cela n'est pas nécessaire, mais peut être utile à quelqu'un.)
|