So finden Sie alle Socket-Dateien auf Ihrem System:
sudo find / -type s
Auf meinem MySQL-Serversystem war der Socket geöffnet /var/lib/mysql/mysql.sock
Wenn Sie herausgefunden haben, wo der Socket geöffnet wird, fügen Sie die Zeile zu Ihrer /etc/my.cnf
Datei mit dem Pfad zur Socket-Datei hinzu oder bearbeiten Sie sie :
socket=/var/lib/mysql/mysql.sock
Manchmal gibt das Systemstart-Skript, das die ausführbare Befehlszeilendatei gestartet hat, ein Flag an --socket=path
. Dieses Flag könnte den my.cnf
Speicherort überschreiben , und dies würde dazu führen, dass ein Socket nicht dort gefunden wird, wo die Datei my.cnf angibt, dass er sein sollte. Wenn Sie dann versuchen, den mysql-Befehlszeilenclient auszuführen, liest er my.cnf, um den Socket zu finden, findet ihn jedoch nicht, da er von dem Ort abweicht, an dem der Server einen erstellt hat. Wenn Sie sich also nicht darum kümmern, wo sich der Socket befindet, sollte es funktionieren, wenn Sie die Datei my.cnf entsprechend ändern.
Wenn Sie ein Superuser im Linux-System sind, gehen Sie wie folgt vor:
kill -9 <pid_of_mysql>
oder manchmal können Sie dies tun:
pkill -9 mysqld
Nachdem Sie dies getan haben, möchten Sie möglicherweise nach einer PID-Datei suchen /var/run/mysqld/
und diese löschen
Stellen Sie sicher, dass die Berechtigungen für Ihren Socket so sind, dass jeder Benutzer, den mysqld ausführt, lesen / schreiben kann. Ein einfacher Test besteht darin, es für das vollständige Lesen / Schreiben zu öffnen und zu prüfen, ob es noch funktioniert:
chmod 777 '/var/run/mysqld/mysqld.sock'
Wenn das Problem dadurch behoben wird, können Sie die Berechtigungen und den Besitz des Sockets je nach Ihren Sicherheitseinstellungen nach Bedarf anpassen.
Außerdem muss das Verzeichnis, in dem sich der Socket befindet, für den Benutzer erreichbar sein, der den mysqld-Prozess ausführt.
Referenz: /programming/11990708/error-cant-connect-to-local-mysql-server-through-socket-var-run-mysqld-mysq
restart
. verwendenstart
. Möglicherweise besteht das Problem darin, dass das Stoppen fehlschlägt und nicht einmal versucht wird, es zu starten.