Die MySQL-Binär- und -RPM-Releases für die Linux-Intel-Kombination sind für optimale Geschwindigkeit konfiguriert. Wir versuchen immer, den schnellsten stabilen Compiler zu finden, der verfügbar ist.
Der Binär-Release wird mit -static
verknüpft, d. h., Sie müssen sich in der Regel keine
Gedanken darüber machen, welche Version der
Systembibliotheken Sie haben. Sie müssen auch LinuxThreads
nicht installieren. Ein mit -static
verknüpftes Programm ist ein wenig größer als ein dynamisch
verknüpftes Programm, aber auch ein bisschen schneller (ca. 3
bis 5 Prozent). Allerdings besteht ein Problem bei statisch
verknüpften Programmen darin, dass Sie keine UDFs
(User-Defined Functions, benutzerdefinierte Funktionen)
verwenden können. Wenn Sie UDFs schreiben oder verwenden
wollen (dies ist nur etwas für C- oder C++-Programmierer),
dann müssen Sie MySQL selbst mit dynamischer Verknüpfung
kompilieren.
Ein bekanntes Problem bei Binärdistributionen besteht darin,
dass auf älteren Linux-Systemen, die libc
verwenden (also z. B. Red Hat 4.x oder Slackware),
gelegentlich Schwierigkeiten in Verbindung mit der Auflösung
der Hostnamen auftreten (diese sind jedoch nicht
schwerwiegend). Verwendet Ihr System libc
statt glibc2
, dann werden Sie
wahrscheinlich Probleme in Verbindung mit der
Hostnamensauflösung und getpwnam()
haben.
Diese treten auf, weil glibc
(leider) auf
einige externe Bibliotheken angewiesen ist, um die
Namensauflösung und getpwent()
implementieren zu können – und zwar auch dann, wenn mit der
Option -static
kompiliert wurde. Diese
Probleme äußern sich auf zweierlei Weise:
Bei der Ausführung von mysql_install_db erhalten Sie die folgende Fehlermeldung:
Sorry, the host 'xxxx
' could not be looked up
Sie können dieses Problem beheben, indem Sie
mysql_install_db --force ausführen,
was dazu führt, dass der Test
resolveip in
mysql_install_db nicht ausgeführt
wird. Der Nachteil besteht darin, dass Sie Hostnamen nicht
in Grant-Tabellen verwenden können; mit Ausnahme von
localhost
müssen Sie dann immer die
entsprechenden IP-Adressen angeben. Wenn Sie eine alte
MySQL-Version verwenden, die --force
nicht unterstützt, dann müssen Sie den Test
resolveip
in
mysql_install
manuell mit einem
Texteditor entfernen.
Unter Umständen erhalten Sie auch die folgende
Fehlermeldung, wenn Sie versuchen,
mysqld mit der Option
--user
auszuführen:
getpwnam: No such file or directory
Um dieses Problem zu umgehen, starten Sie
mysqld mit dem Befehl
su
statt durch Angabe der Option
--user
. Auf diese Weise ändert das
System die Benutzerkennung des
mysqld-Prozesses selbst, d. h.
mysqld muss dies nicht erledigen.
Eine andere Lösung, die beide Probleme behebt, besteht darin,
keine Binärdistribution zu verwenden. Beschaffen Sie sich
eine MySQL-Quelldistribution (im RPM- oder
tar.gz
-Format) und installieren Sie diese
stattdessen.
Bei manchen Linux 2.2-Versionen erhalten Sie unter Umständen
die Fehlermeldung Resource temporarily
unavailable
, wenn Clients über TCP/IP sehr schnell
viele neue Verbindungen mit einem
mysqld-Server herstellen. Das Problem
besteht darin, dass bei Linux zwischen dem Moment, zu dem ein
TCP/IP-Socket von Ihnen geschlossen wird, und dem Zeitpunkt
der tatsächlichen Freigabe des Sockets eine Verzögerung
auftritt. Es ist nur für eine endliche Anzahl von
TCP/IP-Slots Platz vorhanden; deswegen sind zu wenig
Ressourcen vorhanden, wenn Clients innerhalb kurzer Zeit zu
viele neue TCP/IP-Verbindungen anfordern. Beispielsweise tritt
dieser Fehler auf, wenn Sie den MySQL-Benchmark
test-connect
über TCP/IP ausführen.
Wir haben dieses Problem einige Male auf verschiedenen Linux-Mailinglisten beschrieben, konnten aber niemals eine geeignete Lösung finden. Der einzige bekannte „Fix“ besteht darin, dass Clients Permanentverbindungen verwenden oder Sie, wenn Sie den Datenbankserver und die Clients auf demselben Rechner ausführen, Verbindungen via Unix-Socketdatei statt TCP/IP-Verbindungen einsetzen.
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.