Services webmasters
Partenaires
Jeux concours gratuits
 
Notes relatives à Windows
<<<
Remarques pour Solaris Notes relatives à BSD
>>>

2.6 Notes spécifiques aux systèmes d'exploitation
2 Installation de MySQL
 Manuel de Référence MySQL 4.1 : Version Française

Notes relatives à Linux (toutes versions)
Notes relatives à Windows
->Remarques pour Solaris
Notes relatives à BSD
Notes relatives à Mac OS X
Notes sur les autres Unix
Notes relatives à OS/2
Notes relatives à BeOS
Notes relatives à Novell NetWare

2.6.3 Remarques pour Solaris

Sous Solaris, vous pouvez renontrer 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 :

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
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 .

Vous pouvez rencontrer les erreurs suivantes lors du configure:


checking for restartable system calls... configure: error can not run test
programs while cross compiling
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 inérant la ligne suivante dans le fichier config.cache :

ac_cv_sys_restartable_syscalls=${ac_cv_sys_restartable_syscalls='no'}
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:

CC=gcc CFLAGS="-O3" \
CXX=gcc CXXFLAGS="-O3 -felide-constructors -fno-exceptions -fno-rtti" \
./configure --prefix=/usr/local/mysql --with-low-memory --enable-assembler
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=cc CFLAGS="-Xa -fast -native -xstrconst -mt" \
CXX=CC CXXFLAGS="-noex -mt" \
./configure --prefix=/usr/local/mysql --enable-assembler
Vous pouvez créer un binaire 64 bits avec :

CC=cc CFLAGS="-Xa -fast -native -xstrconst -mt -xarch=v9" \
CXX=CC CXXFLAGS="-noex -mt -xarch=v9" \
./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.

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 :

#if !defined(__STDC__) || __STDC__ != 1
en :

#if !defined(__STDC__)
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).

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 ):


libc internal error: _rmutex_unlock: rmutex not held
Ajoutez -mt à CFLAGS et CXXFLAGS puis réessayez.

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 laquel 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 :


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'
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)!

Solaris ne fournit pas de versions statiques de toutes les librairies système ( libpthreads et libdl ), vous ne pouvez donc pas compiler MySQL avec --static . Si vous tentez de le faire, vous obtiendrez l'erreur :


ld: fatal: library -ldl: not found

ou

undefined reference to `dlopen'

ou

cannot find -lrt
Si de nombreux processus essaient de se connecter très rapidement à mysqld , vous verrez cette erreur dans le journal MySQL :

Error in accept: Protocol error
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 . Options en ligne de commande de mysqld .Si vous liez votre propre client MySQL, vous pouvez avoir l'erreur suivante quand vous le lancez :

ld.so.1: ./my: fatal: libmysqlclient.so.#:
open failed: No such file or directory
Le problème peut être évité avec l'une des méthodes suivantes :
  • 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 voulez utiliser le protocole compresseé de communication, vous devrez vous procurer et installer zlib sur ftp.gnu.org.
  • Configurez avec --with-named-z-libs=no .
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 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 :

<< Remarques pour Solaris >>
Notes relatives à Windows Notes spécifiques aux systèmes d'exploitation Notes relatives à BSD
Services webmasters
Les manuels
 
CoursPHP.com - Reproduction interdite -