Auf Unix hat ein MySQL-Client zwei Möglichkeiten, sich mit dem
        mysqld-Server zu verbinden: Entweder
        verwendet er eine Unix-Socketdatei (nach Voreinstellung
        /tmp/mysql.sock), um sich über eine Datei
        im Dateisystem zu verbinden, oder er verwendet TCP/IP, um sich
        über eine Portnummer zu verbinden. Eine Verbindung über eine
        Unix-Socketdatei ist schneller als TCP/IP, kann aber nur genutzt
        werden, wenn sich der Client mit einem Server auf demselben
        Computer verbindet. Der Weg über die Unix-Socketdatei wird
        gewählt, wenn Sie keinen Hostnamen oder
        localhost angeben.
      
        Wenn der MySQL Server auf Windows 9x oder Me läuft, können Sie
        sich nur per TCP/IP verbinden. Wenn er auf Windows NT, 2000, XP
        oder 2003 läuft und mit der Option
        --enable-named-pipe gestartet wird, können Sie
        sich auch mit Named Pipes verbinden, wenn der Client auf
        demselben Host wie der Server läuft. Der Name der Named Pipe
        ist nach Voreinstellung MySQL. Wenn Sie für
        die Verbindung mit mysqld keinen Hostnamen
        angeben, versucht ein MySQL-Client als Erstes eine Verbindung
        mit der Named Pipe. Wenn das nicht klappt, verbindet er sich mit
        dem TCP/IP-Port. Indem Sie . als Hostnamen
        angeben, zwingen Sie Windows zur Verwendung von Named Pipes.
      
        Der Fehler (2002) Can't connect to ...
        bedeutet normalerweise, dass auf dem System kein MySQL Server
        läuft oder dass Sie bei Ihrem Verbindungsversuch einen
        verkehrten Unix-Socketdateinamen oder TCP/IP-Port angegeben
        haben.
      
Prüfen Sie als Erstes, ob auf Ihrem Serverhost ein Prozess namens mysqld läuft. (Hierzu verwenden Sie auf Unix ps xa | grep mysqld und auf Windows den Task- Manager.) Wenn kein solcher Prozess läuft, starten Sie den Server. Siehe hierzu Abschnitt 2.9.2.3, „Probleme mit dem Start des MySQL Servers“.
        Läuft ein mysqld-Server, so überprüfen Sie
        ihn mit den folgenden Befehlen. Die Portnummer oder der Name der
        Unix-Socketdatei können in Ihrem Fall abweichen.
        host_ip ist die IP-Nummer des Computers, auf
        welchem der Server ausgeführt wird.
      
shell>mysqladmin versionshell>mysqladmin variablesshell>mysqladmin -h `hostname` version variablesshell>mysqladmin -h `hostname` --port=3306 versionshell>mysqladmin -h host_ip versionshell>mysqladmin --protocol=socket --socket=/tmp/mysql.sock version
        Beachten Sie, dass Backticks anstelle von Anführungszeichen
        für den hostname-Befehl verwendet werden.
        Diese sorgen dafür, dass die Ausgabe von
        hostname (also des aktuellen Hostnamens) in
        den Befehl mysqladmin eingesetzt wird. Wenn
        Sie keinen hostname-Befehl zur Verfügung
        haben oder mit Windows arbeiten, können Sie den Hostnamen Ihres
        Computers hinter der Option -h manuell
        eingeben (ohne Backticks). Oder Sie versuchen, sich mit
        -h 127.0.0.1 über TCP/IP mit dem lokalen
        Host zu verbinden.
      
        Der Fehler Can't connect to local MySQL
        server könnte aus folgenden Gründen auftreten:
      
mysqld läuft nicht. Vergewissern Sie sich, ob der Prozess mysqld in der Prozessliste Ihres Betriebssystems auftaucht.
            Sie führen einen MySQL Server auf Windows mit vielen
            TCP/IP-Verbindungen aus. Wenn es häufiger vorkommt, dass
            Ihre Clients diesen Fehler melden, finden Sie an folgender
            Stelle einen Workaround:
            Abschnitt A.2.2.1, „Connection to MySQL server failing on Windows-Fehler“.
          
Ihr System verwendet MIT-pthreads. Wenn Sie auf einem System arbeiten, das keine nativen Threads kennt, verwendet mysqld das Package MIT-pthreads (siehe Abschnitt 2.1.1, „Betriebssysteme, die von MySQL unterstützt werden“). Allerdings unterstützen nicht alle MIT-pthreads Unix-Socketdateien. Auf einem System ohne Socketdateiunterstützung müssen Sie bei einer Serververbindung den Hostnamen immer explizit angeben. Versuchen Sie, mit folgendem Befehl die Serververbindung zu überprüfen:
shell> mysqladmin -h `hostname` version
            Jemand hat die von mysqld verwendete
            Unix-Socketdatei entfernt (standardmäßig
            /tmp/mysql.sock). Vielleicht haben Sie
            ja einen cron-Job, der alte Dateien aus
            dem Verzeichnis /tmp löscht. Mit
            mysqladmin version können Sie sich
            vergewissern, dass die Unix-Socketdatei, die
            mysqladmin benötigt, auch tatsächlich
            existiert. Wenn dies das Problem ist, müssen Sie den
            cron-Job so abändern, dass er
            mysql.sock nicht mehr entfernt, oder
            die Socketdatei an einen anderen Ort verlagern. Siehe
            Abschnitt A.4.5, „Wie Sie die MySQL-Socketdatei /tmp/mysql.sock
        schützen oder ändern“.
          
            Sie haben den mysqld-Server zwar mit der
            Option --socket=/path/to/socket gestartet,
            aber vergessen, den Clientprogrammen den neuen Namen der
            Socketdatei mitzuteilen. Wenn Sie den Socketpfadnamen für
            den Server ändern, müssen Sie auch die MySQL-Clients
            entsprechend benachrichtigen. Dies erledigen Sie, indem Sie
            dieselbe --socket-Option einsetzen, wenn
            Sie die Clientprogramme ausführen. Außerdem müssen Sie
            gewährleisten, dass die Clients ein Zugriffsrecht auf die
            mysql.sock-Datei haben. Um
            herauszufinden, wo die Socketdatei liegt, tun Sie Folgendes:
          
shell> netstat -ln | grep mysql
            Siehe Abschnitt A.4.5, „Wie Sie die MySQL-Socketdatei /tmp/mysql.sock
        schützen oder ändern“.
          
            Sie arbeiten auf Linux und ein Server-Thread ist ausgefallen
            (mit Core Dump). In diesem Fall müssen Sie auch die anderen
            mysqld-Threads anhalten (zum Beispiel mit
            kill oder mit dem
            mysql_zap-Skript), bevor Sie den MySQL
            Server neu starten können. Siehe
            Abschnitt A.4.2, „Was zu tun ist, wenn MySQL andauernd abstürzt“.
          
            Der Server oder das Clientprogramm hat nicht die richtigen
            Zugriffsberechtigungen für das Verzeichnis mit der
            Unix-Socketdatei oder der Socketdatei selbst. In diesem Fall
            müssen Sie die Berechtigungen so ändern, dass der Server
            und die Clients an diese Dateien herankommen, oder
            mysqld mit einer
            --socket-Option neu starten, die eine
            Socketdatei in einem Verzeichnis angibt, wo der Server sie
            anlegen kann und die Clients auf sie zugreifen können.
          
        Wenn Sie die Fehlermeldung Can't connect to MySQL
        server on some_host bekommen, können Sie mit
        folgenden Mitteln herausfinden, wo das Problem liegt:
      
            Prüfen Sie, ob der Server auf diesem Host läuft, indem Sie
            telnet some_host 3306 ausführen und dann
            die Eingabetaste einige Male drücken. (3306 ist die
            Standardnummer für den MySQL-Port. Ändern Sie den Wert,
            wenn Ihr Server einen anderen Port verwendet.) Wenn ein
            MySQL Server auf diesem Port läuft und lauscht, müssten
            Sie eine Antwort bekommen, die auch die Versionsnummer des
            Servers angibt. Erhalten Sie stattdessen einen Fehler wie
            beispielsweise telnet: Unable to connect to remote
            host: Connection refused, dann ist auf dem
            angegebenen Port kein Server zu erreichen.
          
            Wenn der Server auf dem lokalen Host läuft, können Sie
            versuchen, sich per mysqladmin -h localhost
            variables über die Unix-Socketdatei zu verbinden.
            Überprüfen Sie, auf welcher TCP/IP-Portnummer der Server
            lauscht (also den Wert der Variablen
            port).
          
            Vergewissern Sie sich, dass der
            mysqld-Server nicht mit der Option
            --skip-networking gestartet wurde.
            Ansonsten können Sie sich nicht per TCP/IP verbinden.
          
Vergewissern Sie sich, dass keine Firewall den Zugriff auf MySQL verhindert. Anwendungen wie ZoneAlarm und die Windows XP-Firewall müssen unter Umständen speziell konfiguriert werden, damit sie den externen Zugriff auf einen MySQL Server erlauben.
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.

