| 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
  : 
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.| 
shell> ./configure --with-mit-threads
 | 
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 : 
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.| 
shell> mysqladmin versionmysqladmin: connect to server at '' failed;
 error: 'Can't connect to mysql server on localhost (146)'
 | 
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.)
 |