Ich erhalte diesen Fehler, wenn ich versuche, mich über die Befehlszeile bei MySQL anzumelden:
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)
Ich denke, dies bedeutet, dass MySQL noch nicht gestartet wurde. Also versuche ich es zu starten:
sudo /etc/init.d/mysql start
und ich bekomme diese Nachricht:
* Starting MySQL database server mysqld [fail]
Wo schaue ich hin / was mache ich, damit MySQL startet? Ich verwende Ubuntu 8.04 und installiere MySQL über apt-get. Ich konnte es ein paar Mal starten und verwenden, daher weiß ich nicht, warum es einfach nicht mehr funktioniert.
Update: Beim Ausführen des Status sudo /etc/init.d/mysql wird folgende Meldung angezeigt:
* MySQL is stopped.
Update Nr. 2: Meine Protokolldateien (/var/log/mysql.log & /var/log/mysql.err) sind leer (wenn dies die richtigen sind)
Antworten:
Unter Ubuntu 12.04 hatte ich das gleiche Problem, nachdem ich die Puffergrößen in der Datei /etc/mysql/my.cnf geändert hatte. Ich glaube, ich wurde ein wenig mitgerissen. Auf jeden Fall würde MySQL nach dem Versuch, sie wieder auf die Standardeinstellung zurückzusetzen, immer noch nicht gestartet.
Ich habe verschiedene Methoden ausprobiert, um das Problem zu beheben. Ich habe festgestellt, dass /var/run/mysql/mysql.sock fehlt. Dies könnte ein Problem sein, sodass Sie es dort überprüfen können. Wenn es fehlt, können Sie es wie folgt ersetzen:
Dies hat das Problem für mich NICHT behoben! Aber es kann für einige.
Ich musste MySQL komplett neu installieren. Dazu müssen Sie den Befehl sudo verwenden. Die Schritte zum vollständigen Entfernen und erneuten Installieren von MySQL lauten wie folgt:
Entfernen Sie MySQL
Optional können Sie aptitude verwenden, indem Sie apt-get --purge durch aptitude ersetzen
Aufräumen
Entfernen Sie das MySQL-Verzeichnis
Installieren Sie MySQL
MySQL sollte jetzt ausgeführt werden. Sie können dies folgendermaßen überprüfen:
Das solltest du sehen
Ich hoffe, dies hilft und dachte, ich könnte danach alle meine Datenbanken und Tabellen hinzufügen, sofern diese noch verfügbar sind. Allerdings musste ich die Benutzer und Kennwörter für diese Datenbanken neu erstellen.
Hinweis: Wenn Sie eine MySQL-Erweiterung für PHP hatten, müssen Sie diese ebenfalls neu installieren.
quelle
sudo touch /var/run/mysqld/mysqld.sock
und ich fand dies am Ende des/var/log/syslog
(z. B. Wechsel zu mysqld)/var/run/mysqld
oder/var/run/mysql
?WARNUNG: Dies ist gefährlich, Ihre MySQL ist NICHT sicher und jeder kann Ihre Tabellen verbinden, bearbeiten usw. Lassen Sie Ihren Server nicht mit diesem Befehl laufen.
Versuchen Sie es im abgesicherten Modus:
/usr/local/mysql/bin/safe_mysqld --user=mysql --skip-grant-tables
Wenn dies funktioniert, liegt möglicherweise ein Problem mit Ihrem information_schema oder Ihren MySQL-Tabellen vor. Wenn es nicht funktioniert, stimmt etwas mit Ihrer Installation nicht.
quelle
sudo /usr/bin/mysqld_safe --user=mysql --skip-grant-tables
Überprüfen Sie Ihre Protokolldateien wie in den anderen Antworten. Überprüfen Sie außerdem, ob Sie über genügend Speicherplatz (oder Speicherplatz) verfügen. MySQL kann sich auf einer leeren Partition so verhalten.
df -h
Wenn dies nicht der Fall ist, lesen Sie die Dokumente von MySQL zum Debuggen eines Servers . Ihre
myisamchk
(wenn Sie MyISAM verwenden) ist besonders nützlich.quelle
Ich habe dieses Problem auch kürzlich nach dem Update von Ubuntu bekommen. Ich bin mir noch nicht sicher, wo genau das Problem liegt. Ein Problem, das im Moment funktioniert hat, um MySQL zum Laufen zu bringen, war:
Damit funktioniert es, was darauf hinweist, dass Apparmor die Ausführung von MySQL gestoppt hat, und erklärt, warum die Protokolle wahrscheinlich auch leer sind: MySQL durfte nicht ausgeführt werden.
Es bleibt ein seltsames Problem, da es bisher keine "Beschwerden"
/var/log/apparmor
gibt und der einzige Audit-Eintrag in kern.log darin besteht, das Profil in den Beschwerdemodus zu ändern.Beachten Sie, dass ich dabei auch eine (leere)
/etc/apparmor.d/local/usr.sbin.mysql
Datei hinzugefügt habe, da der befohlene aa-Beschwerde sich darüber beschwert hat, dass diese Datei nicht gefunden wurde.quelle
Ich hatte das gleiche Problem mit meinem 512 MB Digital Ocean-Tröpfchen.
Es stellte sich heraus, dass es an unzureichendem Speicher liegt.
Eine sofortige Lösung besteht darin, andere Dienste neu zu starten, um Speicher freizugeben, z.
Dann sollten Sie hoffentlich mit genügend Speicher in der Lage sein, MySQL neu zu starten
Die langfristige Lösung besteht darin, entweder mehr RAM zu erhalten oder einen Swap-Speicher zu erstellen .
quelle
Sehen Sie sich Ihre Protokolldateien an. Zumindest unter Debian erhalten Sie MySQL * -Anmeldungen
/var/log
.quelle
Hatte das gleiche Problem, stellte sich heraus, dass die Lösung mich ins Gesicht starrte. Die Fahrt war voll. Sie erhalten keine Protokolle, weil es keinen Ort gibt, an dem Sie sie schreiben können .....
quelle
Das gleiche Problem plagte mich ewig auf einem Ubuntu 12.04 Digital Ocean VPS mit MySQL 5.6, das von einem PPA installiert wurde. Die Symptome waren, dass die Datei mysql.sock unter
/var/run/mysqld/mysql.sock
entfernt, aber nie neu erstellt wurde. Daher musste ich die folgenden Befehle jedes Mal manuell ausführen, wenn mysql aktualisiert oder der Server neu gestartet wurde:Dies war aus Kyle Cs Antwort (außer mit mysqld anstelle von mysql). Am Ende habe ich ein Downgrade auf MySQL 5.5 durchgeführt, wenn Sie normalerweise einen
sudo apt-get install mysql-server
Befehl ausführen würden . Es war jedoch nicht einfach, also musste ich Folgendes tun:Hoffentlich hilft dies jemand anderem, der die gleichen Schmerzen hat.
quelle
Ich denke, das könnte anderen helfen ... also hier ist es.
Ich wollte mein MySQL 5.5 (Ubuntus Standard) auf das neue 5.7 migrieren
(wollte mit dem neuen nativen JSON-Typ herumspielen).
Ich habe die Anweisungen zum Installieren der neuesten Version befolgt ...
aber MySQL wollte nicht starten.
Verbrachte einige Zeit mit Suchen und fand dann diese Zeile in
/var/log/mysql/errors.log
:unknown variable 'key_buffer=16M'
und das ist etwas, das darin festgelegt ist,
/etc/mysql/my.cnf
dass ich mich während des Upgrades dafür entschieden habe, es zu behalten.Also ganz einfach danach:
Ersetzte meine
my.cnf
durch einemy.cnf.dpkg-dist
Version, die sich im selben Verzeichnis befindet ...Dann musste rennen
sudo mysql_upgrade -u root -p sudo service mysql restart
und jetzt ist MySQL wieder betriebsbereit
quelle
Fand eine andere Variation darüber, was falsch sein kann. Ich habe das Datenverzeichnis verschoben und es stellte sich heraus, dass ich vergessen habe, das Verzeichnis für den MySQL-Benutzer zu durchsuchen, was auch ohne jegliche Ausgabe fehlschlägt. Im Nachhinein offensichtlich falsch, aber ein Mangel an Fehlermeldungen macht es schwierig, jedes triviale Problem zu finden.
quelle