
Früher hatte ich ein Problem mit .htacess-Dateien, das ich behoben habe. Dabei dachte ich jedoch, es wäre gut, Apache2 neu zu installieren. Dadurch wurden alle Webserverprobleme behoben, aber als ich versuchte, MySQL zu verwenden, erhielt ich diesen Fehler:
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)
Bitte helfen Sie :O. Ich bin damit einverstanden, alle Datenbanken neu zu erstellen, aber ich bekomme MySQL nicht zum Laufen. Daher kann ich mit meinem Server im Grunde nichts anfangen, bis das Problem behoben ist.
Dank im Voraus :)
Antwort1
Wenn ich dieses Problem habe, mache ich drei Dinge:
Überprüfen Sie, ob der MySQL-Prozess ausgeführt wird. Ein
ps -e
sollte genügen. Bei mir hat ein nicht funktioniertservice mysql stop
. Ich musste manuell nachmachenkillall mysql
.Überprüft, ob my.cnf richtig auf die Stelle verweist, an der die Socket-Datei sein sollte. Es kommt manchmal vor, dass Sie in einer Konfiguration /var/run haben..., aber dann steht in der Konfigurationsdatei etwas anderes. Dasselbe gilt für den Ort, an dem die Datei my.conf sein sollte. Standardmäßig sehen Sie sie in /etc/mysql/my.cnf, aber in anderen Fällen könnte sie in /etc/my.cnf sein (und der Ordner /etc/mysql sollte nicht da sein, um Verwirrung mit 2 MySQL-Konfigurationsquellen zu vermeiden).
Stellen Sie zuletzt sicher, dass das Verzeichnis, in dem sich die Socket-Datei befindet, über die richtigen Berechtigungen verfügt.
Meistens reicht 1. Das passiert zumindest mir, wenn ich eine Konfiguration durchführe und MySQL versehentlich mit einer falschen Konfiguration neu lade.
Antwort2
Der Fehler (2002) Verbindung zu ... kann nicht hergestellt werden bedeutet normalerweise, dass auf dem System kein MySQL-Server läuft. Versuchen Sie einen Neustart.
~$ sudo service mysql restart
mysql start/running, process 3912
oder stoppen und dann starten
:~$ sudo service mysql stop
mysql stop/waiting
~$ sudo service mysql start
mysql start/running, process 3994
Sie sollten außerdem überprüfen, dass der von Ihnen verwendete TCP/IP-Port nicht durch eine Firewall oder einen Portblockierungsdienst blockiert wurde.mehr dazu hier.
Überprüfen Sie, ob der Server auf diesem Host läuft, indem Sie ausführen sudo telnet some_host 3306
und die Eingabetaste ein paar Mal drücken. (3306 ist die Standard-MySQL-Portnummer. Ändern Sie den Wert, wenn Ihr Server einen anderen Port abhört.) Wenn ein MySQL-Server läuft und den Port abhört,Sie sollten eine Antwort erhalten, die die Versionsnummer des Servers enthältWenn Sie einen Fehler wie erhalten telnet: Unable to connect to remote host: Connection refused
, dannAuf dem angegebenen Port läuft kein Server..
meins zum Beispiel (auf Spanisch):
~$ sudo netstat -a | grep mysql
tcp 0 0 localhost:mysql *:* ESCUCHAR
unix 2 [ ACC ] FLUJO ESCUCHANDO 18740 /var/run/mysqld/mysqd.sock
MEINS FUNKTIONIERT: ABER SEHEN WIR ES, INDEM WIR UNS ÜBER TELNET MIT MEINEM LOCALHOST VERBINDEN. =D
~$ sudo telnet localhost 3306
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
E
5.1.61-0ubuntu0.11.10.1"]+Ya]-gQO{<X)_&<:NXConnection closed by foreign host.
marcelo@acer:~$
Schau dir das an:http://ubuntuforums.org/showthread.php?t=804021