
124 MySQL - Technische Referenz f¨ur Version 5.0.1-alpha
CC=cc -pThread
CFLAGS=-O4 -ansi_alias -ansi_args -fast -inline speed -speculate all -arch host
CXX=cxx -pThread
CXXFLAGS=-O4 -ansi_alias -ansi_args -fast -inline speed -speculate all -arch host -noexceptions -nortti
export CC CFLAGS CXX CXXFLAGS
./configure --prefix=/usr/mysql/mysql --with-mysqld-ldflags=-all-static --disable-shared --with-named-thread-libs="-lmach -lexc -lc"
In einigen Versionen von OSF1 ist die alloca()-Funktion besch¨adigt. Beheben Sie dies,
indem Sie die Zeile in ‘config.h’ entfernen, die ’HAVE_ALLOCA’ definiert.
Die alloca()-Funktion kann eb enfalls einen falschen Prototyp in /usr/include/alloca.h
haben. Die Warnung, die hieraus resultiert, kann ignoriert werden.
configure benutzt automatisch folgenden Thread-Bibliotheken: --with-named-thread-
libs="-lpThread -lmach -lexc -lc".
Wenn Sie gcc benutzen, k¨onnen Sie auch versuchen, configure wie folgt laufen zu lassen:
shell> CFLAGS=-D_PTHREAD_USE_D4 CXX=gcc CXXFLAGS=-O3 ./configure ....
Wenn Sie Probleme mit Signalen haben (MySQL stirbt unerwartet unter Hochlast), 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 \
CXXFLAGS=-DDONT_USE_THR_ALARM \
./configure ...
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 gcc 2.95.2 erhalten Sie wahrscheinlich folgenden Kompilierfehler:
sql_acl.cc:1456: Internal compiler error in ‘scan_region’, at except.c:2566
Please submit a full bug report.
Um das zu beheben, wechseln Sie ins sql-Verzeichnis und machen ein “Kopieren und
Einf¨ugen” der letzten gcc-Zeile, ¨andern aber -O3 zu -O0 (oder f¨ugen -O0 unmittelbar nach
gcc hinzu, falls Sie keine -O-Option auf Ihrer Kompilierzeile haben.) Danach wechseln Sie
einfach direkt zur¨uck in oberste Verzeichnis und lassen make noch einmal laufen.
3.6.6.8 Anmerkungen zu SGI Irix
Wenn Sie Irix-Version 6.5.3 oder neuer benutzen, kann mysqld nur dann Threads erzeugen,
wenn Sie ihn als Benutzer mit CAP_SCHED_MGT-Zugriffsrechten (wie root) laufen lassen oder
dem mysqld-Server dieses Recht mit dem folgenden Befehl geben:
shell> chcap "CAP_SCHED_MGT+epi" /opt/mysql/libexec/mysqld
Sie m¨ussen eventuell in ‘config.h’ einige Dinge umdefinieren, nachdem Sie configure
laufen gelassen haben und vor dem Kompilieren.
In einigen Irix-Implementationen ist die alloca()-Funktion besch¨adigt. Wenn der mysqld-
Server bei manchen SELECT-Statements stirbt, entfernen Sie die Zeilen aus ‘config.h’, die
HAVE_ALLOC und HAVE_ALLOCA_H definieren. Wenn mysqladmin create nicht funktioniert,
Kommentare zu diesen Handbüchern