
Kapitel 3: Installation von MySQL 121
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
-Wa,-many ist notwendig, damit das Kompilieren gelingt. Das Problem ist IBM bekannt, hat
es aber nicht eilig, es zu beheben, weil ein Workaround verf¨ugbar ist. Wir wissen nicht, ob
-fno-exceptions f¨ur gcc 2.95 erforderlich ist, aber weil MySQL keine Exceptions benutzt
und die obige Option schnelleren Code erzeugt, empfehlen wir, dass Sie diese Option f¨ur
egcs / gcc immer benutzen.
Wenn Sie ein Problem mit Assembler-Code bekommen, versuchen Sie, -mcpu=xxx so anzu-
passen, dass es zu Ihrem Prozessor passt. Typischerweise wird man power2, power oder
powerpc benutzen, alternativ kann man eventuell 604 oder 604e benutzen. Ich bin nicht
ganz sicher, aber ich w¨urde sagen, dass "power" meist sicher sein sollte, selbst auf einer
power2-Maschine.
Wenn Sie nicht wissen, welchen Prozessor Sie haben, geben Sie "uname -m" ein. Das
gibt eine Zeichenkette zur¨uck, die etwa wie "000514676700" aussieht, mit dem Format
xxyyyyyymmss, wobei xx und ss immer die Nullen sind (0). yyyyyy ist eine eindeutige
System-ID und mm ist die ID des CPU-Planars. Eine Tabelle dieser Werte liegt auf
http://www.rs6000.ibm.com/doc_link/en_US/a_doc_lib/cmds/aixcmds5/uname.htm.
Darin finden Sie Maschinentyp und Maschinenmo dell, was Sie benutzen k¨onnen, um
herauszufinden, welchen Prozessortyp Sie haben.
Wenn Sie Probleme mit Signalen haben (MySQL stirbt unerwartet unter hoher Last), haben
Sie vielleicht einen Betriebssystem-Bug bei Threads und Signalen gefunden. In diesem Fall
k¨onnen Sie MySQL anweisen, keine Signale zu benutzen, indem Sie es wie folgt konfigurieren:
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
Das ber¨uhrt nicht die Performance von MySQL, hat aber den Nebeneffekt, dass Sie keine
Clients auf einer Verbindung mit mysqladmin kill oder mysqladmin shutdown killen
k¨onnen, die “schlafen”. Statt dessen wird der Client sterben, wenn er den n¨achsten Befehl
sendet.
Bei einigen Versionen von AIX f¨ur das Linken mit libbind.a bei getservbyname zu einem
Speicherauszug (Core Dump). Das ist ein AIX-Bug, der IBM berichtet werden sollte.
Bei AIX 4.2.1 und gcc m¨ussen Sie folgende
¨
Anderungen durchf¨uhren:
Nach dem Konfigurieren m¨ussen Sie ‘config.h’ und ‘include/my_config.h’ editieren und
die Zeile ¨andern, in der steht:
#define HAVE_SNPRINTF 1
zu
#undef HAVE_SNPRINTF
Schließlich m¨ussen Sie in ‘mysqld.cc’ einen Prototype f¨ur initgoups hinzuf¨ugen:
#ifdef _AIX41
extern "C" int initgroups(const char *,int);
#endif
Comentarios a estos manuales