Frage centos: Ein anderer MySQL-Daemon läuft bereits mit demselben Unix-Socket


Ich habe einen seltsamen Fehler beim Starten von mysqld service:

Another MySQL daemon already running with the same unix socket.

Ich habe versucht, laufende Dienste aufzulisten und sie zu stoppen, aber derselbe Fehler tritt auf, wenn ich den mysqld-Dienst starte.

Ich kann versuchen, die mysqld zu entfernen und neu zu installieren, aber wird dies auch die Datenbank entfernen?


75
2017-12-05 17:59


Ursprung


Antworten:


Um das Auftreten des Problems zu verhindern, müssen Sie den Server über die Befehlszeile ordnungsgemäß herunterfahren, anstatt den Server auszuschalten.

# shutdown -h now

Dies stoppt die laufenden Dienste, bevor das Gerät ausgeschaltet wird.

Basierend auf Centos ist eine weitere Methode, um es wieder zu bekommen, wenn Sie auf dieses Problem stoßen, mysql.sock zu verschieben:

# mv /var/lib/mysql/mysql.sock /var/lib/mysql/mysql.sock.bak

# service mysqld start

Neustart des Dienstes erstellt einen neuen Eintrag namens mqsql.sock


225
2017-12-14 10:11



TL; DR:

Führen Sie dies als root aus und Sie sind bereit:

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 herumstochern /etc/my.confoder einfach nur mit

grep socket /etc/my.cnf | cut -d= -f2

Es wird wahrscheinlich sein /var/lib/mysql/mysql.sock. Dann (als Wurzel natürlich oder mit sudo vorangestellt) entferne diese Datei:

rm /var/lib/mysql/mysql.sock

Dann starte den MySQL-Daemon:

service mysqld start

Entfernen mysqld wird das Problem überhaupt nicht ansprechen. Das Problem ist, dass CentOS & RedHat nicht aufräumen sock Datei nach einem Absturz, so müssen Sie es selbst tun. Es wird (natürlich) auch empfohlen, auf das Ausschalten Ihres Systems zu verzichten, aber manchmal können Sie es nicht vermeiden, so dass dieses Verfahren das Problem lösen wird.


18
2018-01-09 17:16



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

socket=/var/lib/mysql/mysql2.sock

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

4
2017-12-05 18:31



Meine Lösung dafür war eine mysql.sock im Verzeichnis / var / lib / mysql / von einem harten Herunterfahren. Mysql dachte, es lief bereits, als es nicht lief.


3
2017-12-06 21:49



Öffnen Sie einfach einen Fehlerbericht mit Ihrem Betriebssystemhersteller und bitten Sie ihn, das Socket in / var / run zu setzen, damit es automatisch beim Neustart entfernt wird. Es ist ein Fehler, diesen Socket nach einem unsauberen Neustart zu behalten, / var / run ist der Ort für diese Art von Dateien.


2
2018-01-23 11:29



Um die .sock-Datei automatisch zu bereinigen, fügen Sie diese Zeilen unmittelbar nach dem "start" -Block des Codes in die Datei /etc/init.d/mysqld ein

test -e /var/lib/mysql/mysql.sock
SOCKEXIST=$?

ps cax | grep mysqld_safe
NOPIDMYSQL=$?

echo NOPIDMYSQL $NOPIDMYSQL
echo SOCKEXIST $SOCKEXIST

if [ $NOPIDMYSQL -eq 1 ] && [ $SOCKEXIST -eq 0 ] ; then
    echo "NOT CLEAN"
    rm -f /var/lib/mysql/mysql.sock
    echo "FILE SOCK REMOVED"
else
    echo "CLEAN"
fi

es hat für mich funktioniert. Ich musste das tun, weil ich keine USV habe und oft Stromausfälle haben.

Grüße.


1
2018-01-15 10:37



Es kann manchmal vorkommen, wenn der MySQL-Dienst während des Betriebssystemneustarts nicht ordnungsgemäß heruntergefahren wird. Die /var/lib/mysql/mysql.sock wurde verlassen. Dies verhindert, dass 'mysqld' gestartet wird.

Diese Schritte können helfen:

1: Dienst mysqld starten killall -9 mysqld_safe mysqld Dienst mysqld starten

2: rm /var/lib/mysql/mysql.sock    Dienst mysqld starten


1
2018-04-22 07:13



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.


0
2017-09-29 05:03



Es ist nur wegen der abnormalen Beendigung des mysql-Dienstes geschehen. Löschen Sie oder nehmen Sie eine Sicherungskopie der Datei /var/lib/mysql/mysql.sock und starten Sie mysql neu.

Bitte lassen Sie mich wissen, ob im Falle eines Problems ..


0
2018-06-06 17:26