Aufgrund einiger kritischer Bugs in den HP-UX-Standardbibliotheken sollten Sie die folgenden Patches installieren, bevor Sie MySQL unter HP-UX 11.0 ausführen:
PHKL_22840 Streams cumulative PHNE_22397 ARPA cumulative
Hierdurch können Sie das Problem beheben,
EWOULDBLOCK
aus recv()
und EBADF
aus accept()
in Thread-basierten Anwendungen zu erhalten.
Wenn Sie gcc 2.95.1 auf einem nicht gepatchten HP-UX 11.x-System einsetzen, wird unter Umständen die folgende Fehlermeldung angezeigt:
In file included from /usr/include/unistd.h:11, from ../include/global.h:125, from mysql_priv.h:15, from item.cc:19: /usr/include/sys/unistd.h:184: declaration of C function ... /usr/include/sys/pthread.h:440: previous declaration ... In file included from item.h:306, from mysql_priv.h:158, from item.cc:19:
Das Problem besteht darin, dass HP-UX
pthreads_atfork()
nicht konsistent
definiert. Es liegt ein Prototypkonflikt in
/usr/include/sys/unistd.h
:184 und
/usr/include/sys/pthread.h
:440 vor.
Eine Lösung besteht darin,
/usr/include/sys/unistd.h
nach
mysql/include
zu kopieren und
unistd.h
so zu editieren, dass es zur
Definition in pthread.h
passt. Suchen Sie
nach der folgenden Zeile:
extern int pthread_atfork(void (*prepare)(), void (*parent)(), void (*child)());
Ändern Sie sie wie folgt ab:
extern int pthread_atfork(void (*prepare)(void), void (*parent)(void), void (*child)(void));
Wenn Sie die Änderung vorgenommen haben, sollte die folgende configure-Zeile funktionieren:
CFLAGS="-fomit-frame-pointer -O3 -fpic" CXX=gcc \ CXXFLAGS="-felide-constructors -fno-exceptions -fno-rtti -O3" \ ./configure --prefix=/usr/local/mysql --disable-shared
Verwenden Sie den HP-UX-Compiler, dann können Sie den folgenden Befehl verwenden (dieser wurde mit cc B.11.11.04 getestet):
CC=cc CXX=aCC CFLAGS=+DD64 CXXFLAGS=+DD64 ./configure \ --with-extra-character-set=complex
Sie können alle Fehler des folgenden Typs ignorieren:
aCC: warning 901: unknown option: `-3': use +help for online documentation
Wenn die folgende Fehlermeldung von configure ausgegeben wird, dann stellen Sie sicher, dass der Pfad zum K&R-Compiler nicht vor dem Pfad zum HP-UX-C- und C++-Compiler steht:
checking for cc option to accept ANSI C... no configure: error: MySQL requires an ANSI C compiler (and a C++ compiler). Try gcc. See the Installation chapter in the Reference Manual.
Ein anderer Grund dafür, dass eine Kompilierung nicht
möglich ist, besteht darin, dass Sie die
+DD64
-Flags nicht wie eben beschrieben
definiert haben.
Eine andere Möglichkeit für HP-UX 11 besteht darin, die unter http://dev.mysql.com/downloads/ verfügbaren MySQL-Binärdateien zu verwenden, die wir selbst erstellt und getestet haben. Ferner wurde uns mitgeteilt, dass die von MySQL angebotenen Binärdateien für HP-UX 10.20 auch unter HP-UX 11 erfolgreich ausgeführt werden können. Wenn Sie hierbei auf Probleme treffen, sollten Sie überprüfen, ob HP-UX-Patches verfügbar sind.
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.