Über den Socket '/tmp/mysql.sock kann keine Verbindung zum lokalen MySQL-Server hergestellt werden

126

Beim Versuch, während meiner Testsuite eine Verbindung zu einem lokalen MySQL-Server herzustellen, schlägt der folgende Fehler fehl:

OperationalError: (2002, "Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)")

Ich kann jedoch jederzeit eine Verbindung zu MySQL herstellen, indem ich das Befehlszeilenprogramm mysqlausführe. A ps aux | grep mysqlzeigt an, dass der Server ausgeführt wird, und stat /tmp/mysql.sockbestätigt, dass der Socket vorhanden ist. Wenn ich einen Debugger in der exceptKlausel dieser Ausnahme öffne , kann ich außerdem zuverlässig eine Verbindung mit genau denselben Parametern herstellen.

Dieses Problem wird ziemlich zuverlässig reproduziert, scheint jedoch nicht 100% zu sein, da meine Testsuite bei jedem blauen Mond tatsächlich ausgeführt wird, ohne diesen Fehler zu treffen. Als ich versuchte damit zu laufen, wurde sudo dtrusses nicht reproduziert.

Der gesamte Client-Code ist in Python, obwohl ich nicht herausfinden kann, wie relevant das wäre.

Das Wechseln zur Verwendung des Hosts 127.0.0.1führt zu folgendem Fehler:

DatabaseError: Can't connect to MySQL server on '127.0.0.1' (61)
Alex Gaynor
quelle
1
Ist es möglich, dass Sie mit vielen gleichzeitigen Verbindungen auf die Datenbank zugreifen? Versuchen max_connectionsSie vielleicht, Ihre MySQL-Conf-Datei zu vergrößern?
dgel
2
funktioniert mysql -h 127.0.0.1über die Kommandozeile? Ich bin mir nicht sicher, ob Ihr MySQL-Server tatsächlich einen TCP-Port überwacht.
Eli
1
Sind Sie sicher, dass Sie die richtigen Versionen der Python MySQL-Clientbibliotheken für Ihre Version von MySQL haben? Funktioniert auch mysql -h localhostzuverlässig?
Old Pro
2
Protokolliert MySQL etwas im Fehlerprotokoll? Überprüfen Sie auch die Dateiberechtigungen für /tmp/mysql.sock und Ihr MySQL-Datenverzeichnis. Treten die Fehler auch auf, wenn Sie die Testsuite als root (sudo) ausführen?
Erik Cederstrand
2
Viele dieser Vorschläge werden im offiziellen MySQL-Referenzhandbuch behandelt, auf das ich in meiner Antwort unten verweise. Es ist besser, die Zeit zu nutzen, um die Vorschläge des MySQL-Referenzhandbuchs systematisch durchzugehen, als nur einen oder zwei dieser Vorschläge auszuprobieren.
Oktober

Antworten:

152
sudo /usr/local/mysql/support-files/mysql.server start 

Das hat bei mir funktioniert. Wenn dies jedoch nicht funktioniert, stellen Sie sicher, dass mysqld ausgeführt wird, und versuchen Sie, eine Verbindung herzustellen.

Pratyay
quelle
1
Ich habe über 2 Wochen verbracht (nicht einmal ein Scherz) und dies ist der nächste Punkt, an dem ich mich endlich verbinden kann. Es bleibt jedoch beim Starten von MySQL hängen ..... Aber danke, schöner Beitrag!
L. Klotz
2
sudo: /usr/local/mysql/support-files/mysql.server: Befehl nicht gefunden. Warum?
Syam Pillai
1
Warum ein Doppelpunkt nach Sudo? Überprüfen Sie, ob der Pfad existiert
Pratyay
Oder wenn MySQL mit Homebrew installiert ist: sudo /usr/local/Cellar/mysql/<version>/support-files/mysql.server start
Majoren
1
Der Server wurde beendet, ohne die PID-Datei zu aktualisieren (/var/lib/mysql/Saranshs-MacBook-Pro.local.pid).
Saran3h
89

Der entsprechende Abschnitt des MySQL-Handbuchs ist hier . Ich würde zunächst die dort aufgeführten Debugging-Schritte durchgehen.

Denken Sie auch daran, dass localhost und 127.0.0.1 in diesem Zusammenhang nicht dasselbe sind:

  • Wenn Host auf eingestellt ist localhost, wird ein Socket oder eine Pipe verwendet.
  • Wenn Host auf eingestellt ist, 127.0.0.1muss der Client TCP / IP verwenden.

So können Sie beispielsweise überprüfen, ob Ihre Datenbank auf TCP-Verbindungen wartet vi netstat -nlp. Es ist wahrscheinlich, dass es auf TCP-Verbindungen wartet, weil Sie sagen, dass das gut mysql -h 127.0.0.1funktioniert. Verwenden Sie, um zu überprüfen, ob Sie über Sockets eine Verbindung zu Ihrer Datenbank herstellen können mysql -h localhost.

Wenn nichts davon hilft, müssen Sie wahrscheinlich weitere Details zu Ihrer MySQL-Konfiguration veröffentlichen, genau wie Sie die Verbindung instanziieren usw.

jtoberon
quelle
Obwohl das Befolgen etablierter Diagnoseverfahren im Allgemeinen eine gute Idee ist, sehen Sie beim Lesen der Frage (und der Verfahren), dass die Verfahren befolgt wurden und festgestellt haben, dass dies kein Problem mit dem MySQL-Server ist. Dies hat speziell mit dem Python-Client zu tun, da alle anderen Zugriffe über den Socket einwandfrei funktionieren, einschließlich anderer Zugriffe von Python.
Old Pro
1
Was für eine seltsame Abstimmung. Ich habe das etablierte Verfahren aus mehreren Gründen veröffentlicht: (1) Andere Personen haben nur einen Teil des etablierten Verfahrens veröffentlicht, und es ist besser, systematisch zu debuggen. (2) Es schien einige Verwirrung über localhost gegenüber 127.0.0.1 und (3) zu geben ) Andere Personen mit dem gleichen Symptom "Verbindung zum lokalen MySQL-Server kann nicht hergestellt werden" stoßen wahrscheinlich auf diese Frage. Mir ist bewusst, dass es sich wahrscheinlich um den Python-Client handelt. Deshalb habe ich nach weiteren Informationen gefragt, z. B. darüber, wie die Verbindung instanziiert wird.
Oktober
3
+1 Beim Versuch, eine Verbindung zu MySQL über einen SSH-Tunnel herzustellen ( localhostals Host) , wurde dieser Fehler angezeigt . Ändern, um 127.0.0.1es zu beheben.
Rock
Dies hat mein Problem behoben: "Es kann keine Verbindung zum lokalen MySQL-Server über den Socket '/tmp/mysql.sock' hergestellt werden."
Proinsias
Vielen Dank! Dieses Update hat bei mir funktioniert, als ich versucht habe, eine Verbindung zu einem Docker-Maridb-Container herzustellen.
Lucian Oprea
86

Für mich war das Problem, dass ich keinen MySQL-Server laufen ließ. Führen Sie zuerst den Server aus und führen Sie ihn dann aus mysql.

$ mysql.server start
$ mysql -h localhost -u root -p
yask
quelle
28

Ich habe dies in meinem Shop gesehen, als meine Entwickler einen Stack-Manager wie MAMP installiert haben, der mit MySQL an einem nicht standardmäßigen Ort vorkonfiguriert ist.

an Ihrem Terminal laufen

mysql_config --socket

das gibt dir deinen Pfad zur Sockendatei. Nehmen Sie diesen Pfad und verwenden Sie ihn in Ihrem DATABASES HOST-Parameter.

Was Sie tun müssen, ist zeigen Sie Ihre

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'test',
        'USER': 'test',
        'PASSWORD': 'test',
        'HOST': '/Applications/MAMP/tmp/mysql/mysql.sock',
        'PORT': '',
    },
}

HINWEIS

which mysql_configWird auch ausgeführt, wenn auf dem Computer mehrere Instanzen des MySQL-Servers installiert sind, stellen Sie möglicherweise eine Verbindung zum falschen Server her.

Francis Yaconiello
quelle
Was ist, wenn Ihre Sockendatei fehlt?
AlxVallejo
ein anderes Paar kaufen? j / k bedeutet, dass der MySQL-Dienst nicht ausgeführt wird. Starten / starten Sie Ihr
MySQL
6
In meinem Fall wurde das Problem durch Ändern von HOST von "localhost" in "127.0.0.1" behoben.
Lucaswxp
@ Lucaswxp: In meinem Fall muss ich localhost mit Domain-Namen ändern
Anshul Mishra
19

Ich habe gerade das HOSTvon localhostauf geändert 127.0.0.1und es funktioniert gut:

# settings.py of Django project
...

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'db_name',
        'USER': 'username',
        'PASSWORD': 'password',
        'HOST': '127.0.0.1',
        'PORT': '',
},
...
Sirbito X.
quelle
4
Es wäre schön zu wissen , was Datei geändert und wo es sich befindet
Empi
1
In settings.pydes Projekts.
Sirbito X
11

Wenn Sie Ihren Daemon mysql unter Mac OSx verlieren, aber in einem anderen Pfad vorhanden sind, z. B. in private / var, führen Sie den folgenden Befehl aus

1)

ln -s /private/var/mysql/mysql.sock /tmp/mysql.sock

2) Starten Sie Ihre Verbindung zu MySQL neu mit:

mysql -u username -p -h host databasename

funktioniert auch für Mariadb

aurny2420289
quelle
9

Führen Sie das folgende cmd im Terminal aus

/ usr / local / mysql / bin / mysqld_safe

Geben Sie hier die Bildbeschreibung ein

Starten Sie dann die Maschine neu, damit sie wirksam wird. Es klappt!!

Prashanth Sams
quelle
1
Dies funktionierte für mich auf einem iMac mit High Sierra, der auf Mojave aktualisiert wurde. Was passiert sein muss war, dass die Datei mysql.sock in tmp war und beim Upgrade gelöscht wurde. Da der Socket beim Starten von MySQL automatisch erstellt wird, müssen Sie nur sicherstellen, dass MySQL heruntergefahren ist, und ihn dann wie oben beschrieben im abgesicherten Modus starten. Die Datei mysql.sock wird auf magische Weise angezeigt.
David
8

Überprüfen Sie die Anzahl der geöffneten Dateien für den MySQL-Prozess mit dem Befehl lsof.

Erhöhen Sie das Limit für geöffnete Dateien und führen Sie es erneut aus.

hsen
quelle
Ich bin auch schon einmal darauf gestoßen, und Sie können dies nicht einfach über Ihre .cnf-Datei tun. Möglicherweise müssen Sie tatsächlich ulimitdie Anzahl der geöffneten Dateien erhöhen, die Ihr Client und Server geöffnet haben dürfen. Wenn Sie eine neuere Version von Ubuntu verwenden, müssen Sie möglicherweise das MySQL-Upstart-Skript in / etc / init bearbeiten. Hoffentlich können Sie dies jedoch einfach in der .cnf-Datei tun.
Unterlauf
8

Nachdem ich einige dieser Lösungen ausprobiert hatte und keinen Erfolg hatte, funktionierte dies für mich:

  1. System neu starten
  2. mysql.server starten
  3. Erfolg!
Mark Lohr
quelle
7

Dies kann eines der folgenden Probleme sein.

  1. Falsche MySQL-Sperre. Lösung: Sie müssen den richtigen MySQL-Socket herausfinden, indem Sie,

mysqladmin -p Variablen | grep socket

und geben Sie es dann in Ihren Datenbankverbindungscode ein:

pymysql.connect(db='db', user='user', passwd='pwd', unix_socket="/tmp/mysql.sock")

/tmp/mysql.sock ist die von grep zurückgegebene

2. Falsche MySQL-Port-Lösung: Sie müssen den richtigen MySQL-Port herausfinden:

mysqladmin -p variables | grep port

und dann in Ihrem Code:

pymysql.connect(db='db', user='user', passwd='pwd', host='localhost', port=3306)

3306 ist der vom grep zurückgegebene Port

Ich denke, die erste Option wird Ihr Problem lösen.

Chamith Malinda
quelle
6

Für diejenigen, die ein Upgrade von 5.7 auf 8.0 über Homebrew durchgeführt haben, ist dieser Fehler wahrscheinlich darauf zurückzuführen, dass das Upgrade nicht abgeschlossen ist. In meinem Fall mysql.server starthabe ich folgenden Fehler erhalten:

ERROR! Der Server wurde beendet, ohne die PID-Datei zu aktualisieren

Ich habe dann die Protokolldatei über überprüft cat /usr/local/var/mysql/YOURS.err | tail -n 50und Folgendes festgestellt:

InnoDB: Ein Upgrade nach einem Absturz wird nicht unterstützt.

Wenn Sie sich auf demselben Boot befinden, installieren Sie zuerst [email protected]über Homebrew, stoppen Sie den Server und starten Sie das 8.0-System erneut.

brew install mysql@5.7

/usr/local/opt/mysql@5.7/bin/mysql.server start
/usr/local/opt/mysql@5.7/bin/mysql.server stop

Dann,

mysql.server start

Dadurch würde MySQL (8.0) wieder funktionieren.

Blaszard
quelle
Ich bekomme das gleiche ERROR! The server quit without updating PID filewieder.
Awebartisan
In meinem Fall habe ich gerade [email protected] installiert und zuletzt entfernt. Alles begann. Keine Datenbank gelöscht.
Andrew Luca
4

Ich glaube, ich habe das gleiche Verhalten vor einiger Zeit gesehen, kann mich aber nicht an die Details erinnern.
In unserem Fall war das Problem der Moment, in dem der Testrunner Datenbankverbindungen in Bezug auf die erste Datenbankinteraktion initialisiert, die beispielsweise durch den Import eines Moduls in settings.py oder eines __init__.py erforderlich ist. Ich werde versuchen, weitere Informationen zu finden, aber dies könnte bereits eine Glocke für Ihren Fall läuten.

Martin
quelle
4

Stellen Sie sicher, dass Ihre / etc / hosts enthalten ist 127.0.0.1 localhostund es sollte gut funktionieren

hd1
quelle
Erstaunlicherweise (mit Respekt) hat dies für mich geklärt - als ich dies überprüfte, stellte ich fest, dass Mavericks beim Einrichten von webdav meiner Host-Datei einige zusätzliche (völlig verstümmelte) Zeilen hinzugefügt hatte - darunter eine, die localhost neu zugewiesen hatte.
rob_was_taken
4

Ich habe zwei hinterhältige Vermutungen zu dieser

KONJEKTUR 1

Prüfen Sie die Möglichkeit, nicht auf die /tmp/mysql.sockDatei zugreifen zu können . Wenn ich MySQL-Datenbanken einrichte, lasse ich normalerweise die Socket-Dateisite ein /var/lib/mysql. Wenn Sie sich bei mysql als anmelden root@localhost, benötigt Ihre Betriebssystemsitzung Zugriff auf den /tmpOrdner. Stellen Sie sicher, dass /tmpdas Betriebssystem über die richtigen Zugriffsrechte verfügt. Stellen Sie außerdem sicher, dass der Sudo-Benutzer die Datei immer einlesen kann /tmp.

KONJEKTUR 2

Der Zugriff auf MySQL über 127.0.0.1kann zu Verwirrung führen, wenn Sie nicht aufpassen. Wie?

Wenn Sie über die Befehlszeile eine Verbindung zu MySQL herstellen 127.0.0.1, müssen Sie möglicherweise das TCP / IP-Protokoll angeben.

mysql -uroot -p -h127.0.0.1 --protocol=tcp

oder versuchen Sie den DNS-Namen

mysql -uroot -p -hDNSNAME

Dadurch wird die Anmeldung als umgangen root@localhost, aber stellen Sie sicher, dass Sie habenroot@'127.0.0.1' definiert haben.

Wenn Sie das nächste Mal eine Verbindung zu MySQL herstellen, führen Sie Folgendes aus:

SELECT USER(),CURRENT_USER();

Was gibt dir das?

  • USER () berichtet, wie Sie versucht haben, sich in MySQL zu authentifizieren
  • CURRENT_USER () gibt an , wie Sie sich in MySQL authentifizieren durften

Wenn diese Funktionen mit denselben Werten zurückgegeben werden, stellen Sie wie erwartet eine Verbindung her und authentifizieren sich. Wenn die Werte unterschiedlich sind, müssen Sie möglicherweise den entsprechenden Benutzer erstellen [email protected].

RolandoMySQLDBA
quelle
3

Wenn Sie eine Fehlermeldung wie unten erhalten:

django.db.utils.OperationalError: (2002, "Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)")

Suchen Sie dann einfach Ihren mysqld.sock-Speicherort und fügen Sie ihn zu "HOST" hinzu.

Als ob ich xampp unter Linux benutze, befindet sich meine mysqld.sockDatei an einem anderen Ort. es funktioniert also nicht für ' /var/run/mysqld/mysqld.sock'

DATABASES = {

    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'asd',
        'USER' : 'root',
        'PASSWORD' : '',
        'HOST' : '/opt/lampp/var/mysql/mysql.sock',
        'PORT' : ''
    }
}
Shyam
quelle
2

Stellen Sie sicher, dass Ihre MySQL nicht die maximale Anzahl von Verbindungen erreicht hat oder sich nicht in einer Bootschleife befindet, wie dies häufig der Fall ist, wenn die Einstellungen in my.cnf falsch sind.

Verwenden Sie ps aux | grep mysql, um zu überprüfen, ob sich die PID ändert.

beiller
quelle
2

Ich habe mich zu lange online umgesehen, um keinen Beitrag zu leisten. Nachdem ich versucht hatte, die MySQL-Eingabeaufforderung über die Befehlszeile einzugeben, erhielt ich weiterhin die folgende Nachricht:

FEHLER 2002 (HY000): Es kann keine Verbindung zum lokalen MySQL-Server über den Socket '/tmp/mysql.sock' (2) hergestellt werden.

Dies lag daran, dass mein lokaler MySQL-Server nicht mehr lief. Um den Server neu zu starten, habe ich zu navigiert

shell> cd /user/local/bin

wo sich mein mysql.server befand. Von hier aus geben Sie einfach Folgendes ein:

shell> mysql.server start

Dadurch wird der lokale MySQL-Server neu gestartet.

Von dort aus können Sie das Root-Passwort bei Bedarf zurücksetzen.

mysql> UPDATE mysql.user SET Password=PASSWORD('MyNewPass')
->                   WHERE User='root';
mysql> FLUSH PRIVILEGES;
Preynolds
quelle
2

Ich musste alle Instanzen von MySQL beenden, indem ich zuerst alle Prozess-IDs fand:

ps aux | grep mysql

Und sie dann umzubringen:

töte -9 {pid}

Dann:

mysql.server starten

Hat für mich gearbeitet.

HomerPlata
quelle
1

Der Socket befindet sich in / tmp. Unter Unix-Systemen kann dies aufgrund von Modi und Besitzverhältnissen auf / tmp zu Problemen führen. Aber solange Sie uns sagen, dass Sie Ihre MySQL-Verbindung normal verwenden können, ist dies auf Ihrem System wahrscheinlich kein Problem. Eine primäre Überprüfung sollte darin bestehen, mysql.sock in ein neutraleres Verzeichnis zu verschieben.

Die Tatsache, dass das Problem "zufällig" auftritt (oder nicht jedes Mal), lässt mich denken, dass es sich um ein Serverproblem handeln könnte.

  • Befindet sich Ihr / tmp auf einer Standardfestplatte oder auf einem exotischen Mount (wie im RAM)?

  • Ist dein / tmp leer?

  • Zeigt iotopIhnen etwas nicht, wenn Sie auf das Problem stoßen?

Koreth
quelle
0

Konfigurieren Sie Ihre DB-Verbindung im Dialogfeld "DB-Verbindungen verwalten". Wählen Sie als Verbindungsmethode 'Standard (TCP / IP)'.

Weitere Informationen finden Sie auf dieser Seite unter http://dev.mysql.com/doc/workbench/en/wb-manage-db-connections.html

Laut dieser anderen Seite wird eine Socket-Datei verwendet, auch wenn Sie localhost angeben.

Eine Unix-Socket-Datei wird verwendet, wenn Sie keinen Hostnamen oder den speziellen Hostnamen localhost angeben.

Außerdem wird gezeigt, wie Sie Ihren Server überprüfen, indem Sie die folgenden Befehle ausführen:

Wenn ein mysqld-Prozess ausgeführt wird, können Sie ihn überprüfen, indem Sie die folgenden Befehle ausführen. Die Portnummer oder der Name der Unix-Socket-Datei können in Ihrem Setup unterschiedlich sein. host_ip repräsentiert die IP-Adresse des Computers, auf dem der Server ausgeführt wird.

shell> mysqladmin version 
shell> mysqladmin variables 
shell> mysqladmin -h `hostname` version variables 
shell> mysqladmin -h `hostname` --port=3306 version 
shell> mysqladmin -h host_ip version 
shell> mysqladmin --protocol=SOCKET --socket=/tmp/mysql.sock version
Nur du
quelle
0

In Ubuntu14.04 können Sie dies tun, um dieses Problem zu beheben.

zack@zack:~/pycodes/python-scraping/chapter5$ **mysqladmin -p variables|grep socket**
Enter password: 
| socket                                            | ***/var/run/mysqld/mysqld.sock***                                                                                            |
zack@zack:~/pycodes/python-scraping/chapter5$***ln -s  /var/run/mysqld/mysqld.sock /tmp/mysql.sock***
zack@zack:~/pycodes/python-scraping/chapter5$ ll /tmp/mysql.sock 
lrwxrwxrwx 1 zack zack 27 11 29 13:08 /tmp/mysql.sock -> /var/run/mysqld/mysqld.sock=
ZackZang
quelle
0

Ich bin mir sicher, dass mysqld gestartet ist und die Befehlszeile mysql ordnungsgemäß funktionieren kann. Aber der httpd-Server zeigt das Problem (kann keine Verbindung zu MySQL über Socket herstellen).

Ich habe den Dienst mit mysqld_safe & gestartet.

Schließlich stellte ich fest, dass beim Starten des mysqld-Dienstes mit service mysqld start Probleme auftreten (Problem mit der Selinux-Berechtigung). Wenn ich das Selinux-Problem behebe und mysqld mit "service mysqld start" starte, verschwindet das httpd-Verbindungsproblem. Aber wenn ich mysqld mit mysqld_safe & starte, kann mysqld bearbeitet werden. (MySQL-Client kann richtig funktionieren). Es gibt jedoch immer noch Probleme bei der Verbindung mit httpd.

Robin LI
quelle
0

Wenn es sich um einen Socket handelt, lesen Sie diese Datei

/etc/mysql/my.cnf

und sehen Sie, wo sich die Standardsteckdose befindet. Es ist eine Zeile wie:

socket = /var/run/mysqld/mysqld.sock

Erstellen Sie nun einen Alias ​​für Ihre Shell wie folgt:

alias mysql="mysql --socket=/var/run/mysqld/mysqld.sock"

Auf diese Weise benötigen Sie keine Root-Rechte.

MaxV
quelle
0

Versuche einfach zu rennen mysqld .

Dies war, was für mich auf dem Mac nicht funktionierte. Wenn es nicht funktioniert, gehen Sie zu /usr/local/var/mysql/<your_name>.err, um detaillierte Fehlerprotokolle anzuzeigen.

eloone
quelle
0
# shell script ,ignore the first 
$ $(dirname `which mysql`)\/mysql.server start

Kann hilfreich sein.

陈 也在 哦
quelle
Entspricht der Sternantwort 'sudo /usr/local/mysql/support-files/mysql.server start', aber unterschiedliche Betriebssysteme haben möglicherweise unterschiedliche Pfade für 'mysql.server'. Also habe ich versucht, eine Befehlszeile zu schreiben, die dies könnte in vielen Betriebssystemen nützlich sein.
也在 哦
0

Verwenden von MacOS Mojave 10.14.6 für MySQL 8.0.19, installiert über Homebrew

  • Ran sudo find / -name my.cnf
  • Datei gefunden bei /usr/local/etc/my.cnf

Arbeitete eine Zeit lang, dann kehrte schließlich der Fehler zurück. Deinstallierte die Homebrew-Version von MySQL und installierte die .dmg-Datei direkt von hier aus

Glücklich verbunden seitdem.

Geduld Mpofu
quelle
0

In meinem Fall hat es geholfen, die Datei zu bearbeiten /etc/mysql/mysql.conf.d/mysqld.cnfund die Zeile zu ersetzen:

socket      = /var/run/mysqld/mysqld.sock

mit

socket      = /tmp/mysql.sock

Dann habe ich den Server neu gestartet und es hat gut funktioniert. Das Lustige ist, dass es immer noch funktioniert hat, wenn ich die Leitung wie zuvor zurückgesetzt und neu gestartet habe.

jav
quelle
0

Ich hatte kürzlich ein ähnliches Problem. Ging durch viele Antworten. Ich habe es durch folgende Schritte zum Laufen gebracht.

  1. Ändern Sie den Socket-Pfad in /etc/my.cnf (da ich wiederholt Fehler mit /tmp/mysql.sock bekam) , um den Socket-Pfad zu ändern
  2. Führen Sie mysqld_safe aus, um den Server neu zu starten, da dies die empfohlene Methode zum Neustart bei Fehlern ist. Verweis auf mysqld_safe
Arjun KR
quelle
0

Für mich lief der MySQL-Server nicht. Also habe ich den MySQL-Server durch gestartet

mysql.server start

dann

mysql_secure_installation

um den Server zu sichern und jetzt kann ich den MySQL Server durch besuchen

sudo mysql -uroot -p

sh6210
quelle