La détection automatique de xlC est
          absente de Autoconf, ce qui fait qu'un commande
          configure comme celle qui suit est requise
          lors de la compilation de MySQL (Cet exemple utilise le
          compilateur IBM) :
        
export CC="xlc_r -ma -O3 -qstrict -qoptimize=3 -qmaxmem=8192 " export CXX="xlC_r -ma -O3 -qstrict -qoptimize=3 -qmaxmem=8192" export CFLAGS="-I /usr/local/include" export LDFLAGS="-L /usr/local/lib" export CPPFLAGS=$CFLAGS export CXXFLAGS=$CFLAGS ./configure --prefix=/usr/local \ --localstatedir=/var/mysql \ --sysconfdir=/etc/mysql \ --sbindir='/usr/local/bin' \ --libexecdir='/usr/local/bin' \ --enable-thread-safe-client \ --enable-large-files
Ce sont les options utilisées pour compiler la distribution de MySQL qui peut être trouvée sur http://www-frec.bull.com/.
          Si vous changez le -O3 en
          -O2 dans la ligne précédente, vous devez
          aussi enlever l'option -qstrict (c'est une
          limitation du compilateur IBM C).
        
          Si vous utilisez gcc ou
          egcs pour compiler MySQL, vous
          devez utiliser l'option
          -fno-exceptions, vu que la gestion des
          exceptions de gcc/egcs
          n'est pas sûre pour les threads ! (Cela est testé avec
          egcs 1.1.) Il y a aussi quelques problèmes
          connus avec l'assembleur d'IBM, qui peuvent lui faire
          générer du mauvais code lors de son utilisation avec gcc.
        
          Nous recommandons la ligne de configure
          suivante avec egcs et gcc
          2.95 sur AIX :
        
CC="gcc -pipe -mcpu=power -Wa,-many" \ CXX="gcc -pipe -mcpu=power -Wa,-many" \ CXXFLAGS="-felide-constructors -fno-exceptions -fno-rtti" \ ./configure --prefix=/usr/local/mysql --with-low-memory
          Le -Wa,-many est nécessaire pour que la
          compilation se passe sans problèmes. IBM est au courant de ce
          problème mais n'est pas pressé de le corriger à cause de
          l'existence du palliatif. Nous ne savons pas si
          -fno-exceptions est requise avec
          gcc 2.95, mais comme MySQL n'utilise pas
          les exeptions et que l'option en question génère un code
          plus rapide, nous vous recommandons de toujours utiliser cette
          option avec egcs / gcc.
        
Si vous obtenez un problème avec le code de l'assembleur essayez en changeant l'option -mcpu=xxx pour l'adapter à votre processeur. Le plus souvent, on a besoin de power2, power, ou powerpc, et sinon 604 ou 604e. Je ne suis pas positif mais je pense que l'utilisation de "power" sera sûre la plupart du temps, même sur une machine power2.
Si vous ne savez pas quel est votre processeur, exécutez "uname -m", cela vous renverra une chaîne comme "000514676700", avec un format xxyyyyyymmss où xx et ss sont toujours des zéros, yyyyyy est un identifiant unique du système et mm est l'identifiant du CPU Planar. Une liste de ces valeurs peut être trouvée sur http://publib.boulder.ibm.com/doc_link/en_US/a_doc_lib/cmds/aixcmds5/uname.htm. Cela vous donnera un type et un modèle de machine que vous pouvez utiliser pour déterminer quel type de processeur vous avez.
Si vous avez des problèmes avec les signaux (MySQL se termine de manière imprévue lors des montées en charge) vous avez peut-être trouvé un bogue du système avec les threads et les signaux. Dans ce cas, vous pouvez demander à MySQL de ne pas utiliser les signaux en configuration avec :
shell>CFLAGS=-DDONT_USE_THR_ALARM CXX=gcc \CXXFLAGS="-felide-constructors -fno-exceptions -fno-rtti \-DDONT_USE_THR_ALARM" \./configure --prefix=/usr/local/mysql --with-debug --with-low-memory
          Cela n'affecte pas les performances de MySQL, mais comporte un
          effet secondaire faisant en sorte que vous ne pourrez tuer les
          clients en état ``sleeping'' sur une connexion avec
          mysqladmin kill ou mysqladmin
          shutdown. A la place, le client se terminera
          lorsqu'il émmetra sa prochaine commande.
        
          Sur quelques versions de AIX, lier avec
          libbind.a fait vider son noyau à
          getservbyname (core dump). Il s'agit d'un
          bogue AIX et doit être remonté à IBM.
        
Pour AIX 4.2.1 et gcc vous devez apporter les modifications suivantes :
          Après la configuration, éditez config.h
          et include/my_config.h et changez la
          ligne qui comporte
        
#define HAVE_SNPRINTF 1
en
#undef HAVE_SNPRINTF
          Et finalement, dans mysqld.cc vous devez
          ajouter un prototype pour initgoups.
        
#ifdef _AIX41 extern "C" int initgroups(const char *,int); #endif
          Si vous avez besoin d'allouer beaucoup de mémoire au
          processus mysqld, il ne suffit pas de configurer 'ulimit -d
          unlimited'. Vous aurez aussi à configurer dans
          mysqld_safe quelque chose comme :
        
export LDR_CNTRL='MAXDATA=0x80000000'
Vous trouverez plus d'informations sur l'utilisation d'une grande quantité de mémoire sur : http://publib16.boulder.ibm.com/pseries/en_US/aixprggd/genprogc/lrg_prg_support.htm.
This is a translation of the MySQL Reference Manual that can be found at dev.mysql.com. The original Reference Manual is in English, and this translation is not necessarily as up to date as the English version.

