Das Fehlerlog des Servers kann wichtige Informationen über
Verbindungsprobleme geben (siehe Abschnitt 5.12.1, „Die Fehler-Logdatei“).
Wenn Sie den Server mit der Option
--log-warnings
starten, finden Sie im Fehlerlog
vielleicht Meldungen wie diese:
010301 14:38:23 Aborted connection 854 to db: 'users' user: 'josh'
Wenn Aborted connections
-Meldungen im
Fehlerlog stehen, kann das folgende Ursachen haben:
Das Clientprogramm hat nicht
mysql_close()
aufgerufen, bevor es
endete.
Der Client hat länger als wait_timeout
oder interactive_timeout
Sekunden
geschlafen, ohne Requests an den Server zu senden. Siehe
Abschnitt 5.2.2, „Server-Systemvariablen“.
Das Clientprogramm brach plötzlich mitten in einer Datenübertragung ab.
Wenn so etwas geschieht, setzt der Server die Statusvariable
Aborted_clients
herauf.
Bei folgenden Vorfällen inkrementiert der Server die
Statusvariable Aborted_connects
:
Ein Client hat kein Zugriffsrecht auf die Datenbank.
Ein Client benutzt ein falsches Passwort.
Ein Verbindungspaket enthält nicht die richtigen Informationen.
Es dauert mehr als connect_timeout
Sekunden, ein Verbindungspaket zu erhalten. Siehe
Abschnitt 5.2.2, „Server-Systemvariablen“.
Wenn diese Dinge passieren, kann das bedeuten, dass jemand versucht, in den Server einzudringen!
Andere Gründe für einen Abbruch von Clients oder Verbindungen können sein:
Verwendung eines Ethernet-Protokolls mit Linux, sowohl Halb- als auch Voll-Duplex. Viele Linux Ethernet-Treiber haben diesen Fehler. Ob der Fehler auch bei Ihnen vorhanden ist, können Sie testen, indem Sie eine große Datei per FTP zwischen dem Client- und dem Servercomputer übertragen. Wenn der Transfer in einer Art Stop-and-Go-Verkehr abläuft, haben Sie ein Linux-Duplex-Syndrom. Die einzige Lösung besteht darin, den Duplex-Modus für Ihre Netzwerkkarte und ihren Hub/Switch immer entweder auf Voll-Duplex oder auf Halb-Duplex einzustellen und anhand der Ergebnisse die geeignetste Einstellung zu ermitteln.
Ein Problem mit der Thread-Bibliothek, das Unterbrechungen der Lesevorgänge verursacht.
Ein schlecht konfiguriertes TCP/IP.
Fehler in Ethernets, Hubs, Switches, Kabeln usw. Diese lassen sich nur durch Ersetzung von Hardware zweifelsfrei diagnostizieren.
Die Variable max_allowed_packet
ist zu
klein oder Anfragen erfordern mehr Arbeitsspeicher, als Sie
für mysqld zugewiesen haben. Siehe
Abschnitt A.2.9, „Packet too large
-Fehler“.
Siehe auch Abschnitt A.2.8, „MySQL server has gone away
-Fehler“.
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.