Die automatische Erkennung von xlC fehlt
          bei Autoconf. Aus diesem Grund muss eine Reihe von Variablen
          eingestellt werden, bevor configure
          ausgeführt wird. Das folgende Beispiel verwendet den
          IBM-Compiler:
        
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 \
                --sbindir='/usr/local/bin' \
                --libexecdir='/usr/local/bin' \
                --enable-thread-safe-client \
                --enable-large-files
Obige Optionen werden zur Kompilierung der MySQL-Distribution verwendet, die unter http://www-frec.bull.com/ verfügbar ist.
          Wenn Sie in obiger configure-Zeile die
          Option -O3 auf -O2 setzen,
          müssen Sie auch die Option -qstrict
          entfernen. Dies ist eine Einschränkung des C-Compilers von
          IBM.
        
          Wenn Sie gcc oder egcs
          zur Kompilierung von MySQL verwenden,
          müssen Sie das Flag
          -fno-exceptions benutzen, weil die
          Fehlerbehandlung in
          gcc/egcs nicht
          Thread-sicher ist! (Dies wurde mit egcs 1.1
          getestet.) Es gibt ferner einige bekannte Probleme mit dem
          IBM-Assembler, die in Verbindung mit gcc zu
          fehlerhaftem Code führen können.
        
Wir empfehlen die folgende configure-Zeile bei egcs und gcc 2.95 unter 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
          Die Option -Wa,-many ist erforderlich, damit
          die Kompilierung erfolgreich verläuft. Bei IBM ist dieses
          Problem bekannt, man sieht sich aber mit der Behebung nicht
          unter Zeitdruck, da ein Workaround verfügbar ist. Wir wissen
          nicht, ob -fno-exceptions bei
          gcc 2.95 erforderlich ist, aber weil MySQL
          keine Ausnahmen verwendet und die Option einen schnelleren
          Code erzeugt, empfehlen wir ihre generelle Verwendung bei
          egcs und gcc.
        
          Wenn ein Problem mit dem Assemblercode auftritt, versuchen Sie
          die Option
          -mcpu= so zu
          ändern, dass sie zu Ihrer CPU passt. Normalerweise müssen
          xxxpower2, power oder
          powerpc verwendet werden. Möglicherweise
          müssen Sie aber auch 604 oder
          604e einsetzen. Wir wissen es nicht genau,
          nehmen aber an, dass power mit hoher
          Wahrscheinlichkeit in den meisten Fällen sicher ist (und zwar
          auch auf power2-Systemen).
        
          Wenn Sie nicht wissen, welchen Prozessor Sie haben, führen
          Sie den Befehl uname -m aus. Er erzeugt
          einen String, der etwa so aussieht:
          000514676700. Das Format ist
          xxyyyyyymmss, wobei xx
          und ss immer 00,
          yyyyyy eine eindeutige Systemkennung und
          mm die Kennung des CPU-Planars sind. Eine
          Übersicht über diese Werte finden Sie unter
          http://www16.boulder.ibm.com/pseries/en_US/cmds/aixcmds5/uname.htm.
        
Dort erhalten Sie Angaben zu Rechnertyp und -modell, auf deren Basis Sie die CPU in Ihrem Rechner ermitteln können.
Wenn Sie Probleme mit Signalen haben (weil sich MySQL unter hoher Belastung unerwartet aufhängt), haben Sie unter Umständen einen Betriebssystembug bei den Threads oder Signalen gefunden. In diesem Fall können Sie MySQL wie folgt anweisen, Signale nicht zu verwenden:
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
Hierdurch wird die Leistungsfähigkeit von MySQL nicht beeinträchtigt; ein Nebeneffekt besteht aber darin, dass Sie Clients, die an einer Verbindung „schlafen“, mit mysqladmin kill oder mysqladmin shutdown nicht terminieren können. Stattdessen hängt sich der Client auf, wenn er den nächsten Befehl absetzt.
          Bei einigen Versionen von AIX führt eine Verknüpfung mit
          libbind.a bei
          getservbyname() zu einem Speicherauszug.
          Dies ist ein AIX-Bug, der IBM gemeldet werden sollte.
        
Bei AIX 4.2.1 und gcc müssen Sie die folgenden Änderungen vornehmen.
          Bearbeiten Sie nach der Konfiguration
          config.h und
          include/my_config.h. Die Zeile
        
#define HAVE_SNPRINTF 1
ändern Sie wie folgt:
#undef HAVE_SNPRINTF
          Schließlich müssen Sie in mysqld.cc
          noch einen Prototyp für initgroups()
          hinzufügen.
        
#ifdef _AIX41 extern "C" int initgroups(const char *,int); #endif
Wenn Sie dem Prozess mysqld viel Speicher zuweisen müssen, reicht es nicht aus, einfach ulimit -d unlimited zu verwenden. Sie müssen vielmehr auch mysqld_safe mit einer Zeile wie der folgenden ergänzen:
export LDR_CNTRL='MAXDATA=0x80000000'
Weitere Informationen zur Verwendung einer großen Menge Speicher finden Sie unter http://publib16.boulder.ibm.com/pseries/en_US/aixprggd/genprogc/lrg_prg_support.htm.
Benutzer von AIX 4.3 sollten gmake statt des in AIX enthaltenen make-Hilfsprogramms verwenden.
Dies ist eine Übersetzung des MySQL-Referenzhandbuchs, das sich auf dev.mysql.com befindet. Das ursprüngliche Referenzhandbuch ist auf Englisch, und diese Übersetzung ist nicht notwendigerweise so aktuell wie die englische Ausgabe. Das vorliegende deutschsprachige Handbuch behandelt MySQL bis zur Version 5.1.

