Probieren Sie diesen Befehl aus,
sudo service mysql start
Um alle Socket-Dateien auf Ihrem System zu finden, führen Sie Folgendes aus:
sudo find / -type s
Bei meinem Mysql-Serversystem war der Socket bei /var/lib/mysql/mysql.sock
geöffnet
Sobald Sie herausgefunden haben, wo der Socket geöffnet wird, fügen Sie Ihrer Datei /etc/my.cnf die Zeile mit dem Pfad zur Socket-Datei hinzu oder bearbeiten Sie sie:
socket=/var/lib/mysql/mysql.sock
Manchmal gibt das Systemstartskript, das die ausführbare Befehlszeilendatei gestartet hat, ein Flag --socket=path
an . Dieses Flag könnte den my.cnf-Speicherort überschreiben, und das würde dazu führen, dass ein Socket nicht dort gefunden wird, wo die my.cnf-Datei es angibt. 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. Also, es sei denn, es interessiert Sie, wo sich der Socket befindet, es sollte einfach funktionieren, die my.cnf entsprechend zu ändern.
Stoppen Sie dann den mysqld-Prozess. Wie Sie dies tun, ist je nach System unterschiedlich.
Wenn Sie ein Superuser im Linux-System sind, versuchen Sie eine der folgenden Methoden, wenn Sie die spezifische Methode, die Ihr Mysql-Setup verwendet, nicht kennen:
service mysqld stop
/etc/init.d/mysqld stop
mysqladmin -u root -p shutdown
- Einige Systeme sind nicht so eingerichtet, dass sie einen eleganten Weg haben, mysql zu stoppen (oder aus irgendeinem Grund antwortet mysql nicht), und Sie können das Beenden von mysql erzwingen mit:
- Ein Schritt:
pkill -9 mysqld
- Zweistufig (am wenigsten bevorzugt):
- Finden Sie die Prozess-ID von mysql entweder mit
pgrep mysql
oderps aux | grep mysql | grep -v grep
- Angenommen, die Prozess-ID ist
4969
mitkill -9 4969
beenden
- Finden Sie die Prozess-ID von mysql entweder mit
- Ein Schritt:
Nachdem Sie dies getan haben, möchten Sie vielleicht nach einer PID-Datei in /var/run/mysqld/
suchen und löschen
Stellen Sie sicher, dass die Berechtigungen für Ihren Socket so sind, dass jeder Benutzer, auf dem mysqld läuft, lesen/schreiben kann. Ein einfacher Test besteht darin, es für vollständigen Lese-/Schreibzugriff zu öffnen und zu sehen, 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 Bedarf basierend auf Ihren Sicherheitseinstellungen anpassen.
Außerdem muss das Verzeichnis, in dem sich der Socket befindet, für den Benutzer erreichbar sein, der den mysqld-Prozess ausführt.
Dieser Fehler tritt aufgrund mehrerer Installationen von mysql auf. Führen Sie den Befehl aus:
ps -A|grep mysql
Beenden Sie den Prozess mit:
sudo pkill mysql
und führen Sie dann den Befehl aus:
ps -A|grep mysqld
Beenden Sie diesen Prozess auch, indem Sie Folgendes ausführen:
sudo pkill mysqld
Jetzt sind Sie vollständig eingerichtet, führen Sie einfach die folgenden Befehle aus:
service mysql restart
mysql -u root -p
Habe wieder sehr gut funktionierendes mysql