| 2.6 Notes spécifiques aux systèmes d'exploitation
 2 Installer MySQL
 Manuel de Référence MySQL 4.1 : Version Française
 
 . Notes relatives à Linux (toutes versions)
 . Notes relatives à Mac OS X
 ->Notes pour Solaris
 . Notes relatives à BSD
 . Notes sur les autres Unix
 . Notes relatives à OS/2
 . Notes relatives à BeOS
 
 
 | 
  2.6.3 Notes pour Solaris 
     Sous Solaris, vous pouvez rencontrer des problèmes avant même d'avoir 
désarchivé la distribution MySQL! Le programme  
tar
  de Solaris 
ne peut pas manipuler de noms de fichiers longs, provoquant les messages suivants quand 
vous décompressez MySQL : Dans ce cas, vous devez utiliser GNU  
tar
  ( 
gtar
 ) pour désarchiver la 
distribution. Vous pouvez en trouver une copie précompilée pour Solaris sur 
 http://www.mysql.com/Downloads/ .La gestion native des threads Sun fonctionne uniquement depuis Solaris 2.5. Pour les 
versions 2.4 et antérieures, MySQL utilisera automatiquement les  
MIT-pthreads
 .
 Remarques sur MIT-pthreads .| 
x mysql-3.22.12-beta/bench/Results/ATIS-mysql_odbc-NT_4.0-cmp-db2,\informix,ms-sql,mysql,oracle,solid,sybase, 0 bytes, 0 tape blocks
 tar: directory checksum error
 | 
 
Vous pouvez rencontrer les erreurs suivantes lors du configure:
 Cela signifie que l'installation de votre compilateur est défectueuse!
Dans ce cas, vous devez mettre à jour votre compilateur en faveur d'une version 
plus récente. Vous pouvez aussi résoudre le problème en innérant 
la ligne suivante dans le fichier  
config.cache
  :| 
checking for restartable system calls... configure: error can not run testprograms while cross compiling
 | 
 Si vous utilisez Solaris sur une architecture SPARC, nous recommandons  
gcc
  2.95.2 
comme compilateur. Vous pouvez le trouver sur  http://gcc.gnu.org/ .
Notez que  
egcs
  1.1.1 et  
gcc
  2.8.1 ne fonctionnent pas correctement sur 
SPARC!La ligne  
configure
  recommandée dans le cas de l'utilisation de  
gcc
  
2.95.2 est:| 
ac_cv_sys_restartable_syscalls=${ac_cv_sys_restartable_syscalls='no'}
 | 
 Si vous avez une machine UltraSPARC, vous pouvez gagner 4% de performances 
supplémentaires en ajoutant " 
-mcpu=v8 -Wa,-xarch=v8plusa
 " à CFLAGS et CXXFLAGS.Si vous utilisez le compilateur Forte 5.0 (et supérieur) de Sun, vous pouvez 
lancer  
configure
  de la façon suivante :| 
CC=gcc CFLAGS="-O3" \CXX=gcc CXXFLAGS="-O3 -felide-constructors -fno-exceptions -fno-rtti" \
 ./configure --prefix=/usr/local/mysql --with-low-memory --enable-assembler
 | 
 Vous pouvez créer un binaire 64 bits avec :| 
CC=cc CFLAGS="-Xa -fast -native -xstrconst -mt" \CXX=CC CXXFLAGS="-noex -mt" \
 ./configure --prefix=/usr/local/mysql --enable-assembler
 | 
 Lors de bancs de tests MySQL, nous avons gagné 4% en vitesse sur une UltraSPARC en 
utilisant Forte 5.0 en mode 32 bits plutôt que gcc 3.2 avec les marqueurs -mcpu.| 
CC=cc CFLAGS="-Xa -fast -native -xstrconst -mt -xarch=v9" \CXX=CC CXXFLAGS="-noex -mt -xarch=v9" \
 ./configure --prefix=/usr/local/mysql --enable-assembler
 | 
 
Si vous créez un binaire 64 bits, il est de 4% plus lent que le binaire 32 bits, mais 
en contrepartie vous pouvez gérer davantage de treads et de mémoire.
Si vous rencontrez des problèmes avec  
fdatasync
  ou  
sched_yield
 ,
vous pouvez les résoudre en ajoutant  
LIBS=-lrt
  à la ligne configure. 
Le paragraphe suivant ne s'applique qu'aux compilateurs plus anciens que WorkShop 5.3 :
Vous pouvez avoir à modifier le script  
configure
  et changer la ligne : en : 
 
Si vous activez  
__STDC__
  avec l'option  
-Xc
 , le compilateur Sun ne peut 
pas compiler avec le fichier d'entêtes  
pthread.h
  de Solaris. C'est un bogue de 
Sun (compilateur ou fichier d'inclusion défectueux).| 
#if !defined(__STDC__) || __STDC__ != 1
 | 
 
Si  
mysqld
  génère les messages d'erreur suivants lorsque vous le 
lancez, cela est du au fait que vous avez compilé MySQL avec le compilateur de Sun 
sans activer l'option multi-threads ( 
-mt
 ):
 Ajoutez  
-mt
  à  
CFLAGS
  et  
CXXFLAGS
  puis réessayez.| 
libc internal error: _rmutex_unlock: rmutex not held
 | 
 
Si vous utilisez la version SFW de gcc (fournie avec Solaris 8),
vous devez ajouter  
/opt/sfw/lib
  à la variable d'environnement
 
LD_LIBRARY_PATH
  avant de lancer le configure.
Si vous utilisez le gcc disponible sur  
sunfreeware.com
 , vous pouvez rencontrer 
de nombreux problèmes. Vous devriez recompiler gcc et les GNU binutils sur la machine à partir de laquelle vous les utiliserez, afin d'éviter tout souci. 
Si vous obtenez l'erreur suivante lorsque vous compilez MySQL avec  
gcc
 ,
cela signifie que votre  
gcc
  n'est pas configuré pour votre version de Solaris :
 La meilleure chose à faire dans ce cas est d'obtenir la version la plus 
récente de  
gcc
  et de compiler avec votre  
gcc
  actuel! Au moins pour Solaris 2.5, la plupart des versions binaires de  
gcc
  ont d'anciens fichiers 
d'inclusion inutilisables qui planteront les programmes qui utilisent les threads (ainsi 
probablement d'autres programmes)!| 
shell> gcc -O3 -g -O2 -DDBUG_OFF  -o thr_alarm ..../thr_alarm.c: In function `signal_hand':
 ./thr_alarm.c:556: too many arguments to function `sigwait'
 | 
 
Solaris ne fournit pas de versions statiques de toutes les bibliothèques système 
( 
libpthreads
  et  
libdl
 ), vous ne pouvez donc pas compiler MySQL
avec  
--static
 . Si vous tentez de le faire, vous obtiendrez l'erreur :
 Si de nombreux processus essaient de se connecter très rapidement à 
 
mysqld
 , vous verrez cette erreur dans le journal MySQL :| 
ld: fatal: library -ldl: not foundundefined reference to `dlopen'
 cannot find -lrt
 | 
 Pour éviter cela, vous pouvez lancer le serveur avec l'option 
 
--set-variable back_log=50
 . Veuillez noter que  
--set-variable
  est
déprécié depuis MySQL 4.0, utilisez uniquement  
--back_log=50
 .Si vous liez votre propre client MySQL, vous pouvez avoir l'erreur suivante quand 
vous le lancez :| 
Error in accept: Protocol error
 | 
 Le problème peut être évité avec l'une des méthodes suivantes :| 
ld.so.1: ./my: fatal: libmysqlclient.so.#:open failed: No such file or directory
 | 
 
Liez le client avec le marqueur suivant (à la place de  
-Lpath
 ) :
 
-Wl,r/full-path-to-libmysqlclient.so
 .
Copiez  
libmysqclient.so
  dans  
/usr/lib
 .
Ajoutez le chemin du répertoire où  
libmysqlclient.so
  est 
installé à la variable d'environnement  
LD_RUN_PATH
  avant de 
lancer votre client.
 
Si vous avez des soucis avec configure qui essaie de lier avec  
-lz
  et que 
vous n'avez pas installé  
zlib
 , vous avez deux solutions :
 
Si vous utilisez gcc et rencontrez des problèmes en chargeant la fonction  
UDF
  dans MySQL, essayez d'ajouter  
-lgcc
  à la ligne de liaison de la
fonction  
UDF
 .
Si vous voulez utiliser le protocole compressé de communication, vous devrez 
vous procurer et installer zlib sur ftp.gnu.org.
Configurez avec  
--with-named-z-libs=no
 .
 
Si vous voulez que MySQL se lance automatiquement, vous pouvez copier 
 
support-files/mysql.server
  dans  
/etc/init.d
  et créer un lien 
symbolique pointant dessus et s'appelant  
/etc/rc3.d/S99mysql.server
 .
Comme Solaris ne supporte pas les fichiers core pour les applications  
setuid()
 , vous 
ne pouvez pas obtenir un fichier core de  
mysqld
  si vous utilisez l'option 
 
--user
 . Sommaire : |