Ich habe einen seltsamen Fehler beim Starten des mysqld-Dienstes:
Another MySQL daemon already running with the same unix socket.
Ich habe versucht, laufende Dienste aufzulisten und zu stoppen, aber der gleiche Fehler tritt beim Starten des mysqld-Dienstes auf.
Ich kann versuchen, mysqld zu entfernen und neu zu installieren, aber wird dadurch auch die Datenbank entfernt?
# reboot
Problem zu lösen hat das Problem nicht gelöst. Nie versucht , denshutdown -h now
# mv /var/lib/mysql/mysql.sock /var/lib/mysql/mysql.sock.bak
dann durch# shutdown -h now
und es sollte gut kommen.TL; DR:
Führen Sie dies als root aus und Sie sind fertig:
rm $(grep socket /etc/my.cnf | cut -d= -f2) && service mysqld start
Längere Version:
Sie können den Speicherort der Socket-Datei von MySQL finden, indem Sie manuell darin stöbern
/etc/my.conf
oder einfach verwendenEs ist wahrscheinlich
/var/lib/mysql/mysql.sock
. Dann (natürlich als root oder mitsudo
vorangestelltem) entfernen Sie diese Datei:Starten Sie dann den MySQL-Daemon:
service mysqld start
Durch Entfernen
mysqld
wird das Problem überhaupt nicht behoben. Das Problem ist, dass CentOS & RedHat diesock
Datei nach einem Absturz nicht bereinigen , sodass Sie dies selbst tun müssen. Es wird (natürlich) auch empfohlen, das Ausschalten Ihres Systems zu vermeiden, aber manchmal können Sie es nicht vermeiden, sodass dieses Verfahren das Problem löst.quelle
cut -d= -f2
Bit wird möglicherweise falsch angezeigt, da nach dem=
Vorzeichen ein Wert angezeigt wird. Dies=
ist jedoch der Wert, der an die-d
Option übergeben wird. Mit anderen Worten,=
wird als Trennzeichen für verwendetcut
./etc/my.cnf
durch/etc/mysql/my.cnf
.grep '^socket[[:space:]]=' /etc/my.cnf
, oder Sie könnten am Ende etwas löschen, das Sie nicht beabsichtigt haben.Ich habe eine Lösung für jeden in diesem Problem gefunden. Ändern Sie das Socket-Verzeichnis an einen neuen Speicherort in der Datei my.cnf
und
service mysqld start
oder der schnelle Weg, wie GeckoSEO antwortete
# mv /var/lib/mysql/mysql.sock /var/lib/mysql/mysql.sock.bak # service mysqld start
quelle
Meine Lösung hierfür war ein Überbleibsel von mysql.sock im Verzeichnis / var / lib / mysql / nach einem harten Herunterfahren. MySQL dachte, dass es bereits lief, als es nicht lief.
quelle
Öffnen Sie einfach einen Fehlerbericht mit Ihrem Betriebssystemhersteller und bitten Sie ihn, den Socket in / var / run zu setzen, damit er beim Neustart automatisch entfernt wird. Es ist ein Fehler, diesen Socket nach einem unsauberen Neustart beizubehalten. / Var / run ist der Ort für diese Art von Dateien.
quelle
Um die .sock-Datei automatisch zu bereinigen, platzieren Sie diese Zeilen unmittelbar nach dem Codeblock "start)" in der Datei /etc/init.d/mysqld
es hat bei mir funktioniert. Ich musste dies tun, weil ich keine USV habe und oft Stromausfälle auftreten.
Grüße.
quelle
Es kann vorkommen, dass der MySQL-Dienst während des Neustarts des Betriebssystems nicht ordnungsgemäß heruntergefahren wird. Die Datei /var/lib/mysql/mysql.sock wurde verlassen. Dies verhindert, dass 'mysqld' gestartet wird.
Diese Schritte können helfen:
1: service mysqld start killall -9 mysqld_safe mysqld service mysqld start
2: rm /var/lib/mysql/mysql.sock service mysqld start
quelle
Um den MySQL-Dienst zu starten, können Sie '/var/lib/mysql/mysql.sock' entfernen und den MySQL-Dienst erneut starten:
Entfernen Sie die Socket-Datei:
[root@server ~]# rm /var/lib/mysql/mysql.sock rm: remove socket `/var/lib/mysql/mysql.sock'? yes
Starten Sie den MySQL-Dienst:
[root@server~]# service mysqld start Starting mysqld: [ OK ]
Es wird Ihnen helfen, Ihr Problem zu lösen.
quelle
Es ist nur wegen einer abnormalen Beendigung des MySQL-Dienstes passiert. Löschen oder sichern Sie die Datei /var/lib/mysql/mysql.sock und starten Sie mysql neu.
Bitte lassen Sie mich wissen, wenn es Probleme gibt.
quelle
Ich habe gerade dieses Problem durchgearbeitet und keiner der Vorschläge hat mein Problem gelöst. Während ich MySQL beim Booten nicht starten konnte und dieselbe Meldung in den Protokollen fand ("Ein anderer MySQL-Daemon läuft bereits mit demselben Unix-Socket"), konnte ich den Dienst starten, sobald ich an der Konsole ankam.
In meiner Konfigurationsdatei habe ich die folgende Zeile gefunden :
bind-address=xx.x.x.x
. Ich entschied mich zufällig, es auskommentieren zu lassen, und der Fehler beim Booten verschwand. Da die Bindungsadresse in gewisser Weise Sicherheit bietet, habe ich beschlossen, sie weiter zu untersuchen. Ich habe die IP-Adresse des Geräts anstelle der IPv4-Loopback-Adresse verwendet127.0.0.1
.Kurz gesagt, durch die Verwendung
127.0.0.1
alsbind-address
konnte ich diesen Fehler beheben. Ich hoffe, dies hilft denen, die dieses Problem haben, es aber mit den oben aufgeführten Antworten nicht lösen können.quelle