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.5 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 paquet des
MIT-pthreads
. Cela inclut les anciens
systèmes FreeBSD, SunOS 4.x, Solaris 2.4 et plus ancien, et quelques autres systèmes.
Plate-formes supportées 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 paquet, 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()
ne peut
pas être interrompu 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.)
|