Mein Problem begann damit, dass ich mich bei meiner MySQL-Installation nicht mehr als Root anmelden konnte. Ich habe versucht, MySQL ohne aktivierte Passwörter auszuführen ... aber wann immer ich den Befehl ausgeführt habe
# mysqld_safe --skip-grant-tables &
Ich würde die Aufforderung nie zurückbekommen. Ich habe versucht, diese Anweisungen zu befolgen , um das Passwort wiederherzustellen .
Der Bildschirm sieht einfach so aus:
root@jj-SFF-PC:/usr/bin# mysqld_safe --skip-grant-tables
120816 11:40:53 mysqld_safe Logging to syslog.
120816 11:40:53 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql
und ich erhalte keine Aufforderung, die SQL-Befehle einzugeben, um das Kennwort zurückzusetzen.
Wenn ich es durch Drücken von CTRL+ töte C, erhalte ich die folgende Meldung:
error: 'Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)'
Check that mysqld is running and that the socket: '/var/run/mysqld/mysqld.sock' exists!
Wenn ich den Befehl erneut versuche und ihn lange genug belasse, erhalte ich die folgende Reihe von Meldungen:
root@jj-SFF-PC:/run/mysqld# 120816 13:15:02 mysqld_safe Logging to syslog.
120816 13:15:02 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql
120816 13:16:42 mysqld_safe mysqld from pid file /var/run/mysqld/mysqld.pid ended
[1]+ Done mysqld_safe --skip-grant-tables
root@jj-SFF-PC:/run/mysqld#
Aber wenn ich dann versuche, mich als root anzumelden, indem ich Folgendes tue:
# mysql -u root
Ich erhalte die folgende Fehlermeldung:
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)
Ich habe geprüft und /var/run/mysqld/mysqld.sock
Datei existiert nicht. Der Ordner tut es, aber nicht die Datei.
Ich weiß auch nicht, ob das hilft oder nicht, aber ich rannte find / -name mysqld
und es kam mit:
/var/run/mysqld - folder
/usr/sbin/mysqld - file
/run/mysqld - folder
Ich bin neu in Linux und MySQL, daher weiß ich nicht, ob dies normal ist oder nicht. Aber ich füge diese Informationen hinzu, nur für den Fall, dass es hilft.
Ich entschied mich schließlich, MySQL zu deinstallieren und neu zu installieren.
apt-get remove mysql-server
apt-get remove mysql-client
apt-get remove mysql-common
apt-get remove phpmyadmin
Nach der erneuten Installation aller Pakete in derselben Reihenfolge wie oben wurde während der Installation von phpmyadmin der folgende Fehler angezeigt:
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)
Also habe ich erneut versucht, zu deinstallieren / neu zu installieren. Dieses Mal habe ich nach der Deinstallation der Pakete auch alle MySQL-Dateien und -Verzeichnisse manuell mysql.bad
in ihre jeweiligen Speicherorte umbenannt.
/var/lib/mysql
/var/lib/mysql/mysql
/var/log/mysql
/usr/lib/perl5/DBD/mysql
/usr/lib/perl5/auto/DBD/mysql
/usr/lib/mysql
/usr/bin/mysql
/usr/share/mysql
/usr/share/dbconfig-common/internal/mysql
/etc/init.d/mysql
/etc/apparmor.d/abstractions/mysql
/etc/mysql
Dann habe ich versucht, neu zu installieren mysql-server
und mysql-client
wieder. Ich habe jedoch festgestellt, dass ich nicht zur Eingabe eines Passworts aufgefordert werde. Soll es nicht nach einem Administratorkennwort fragen?
/var/run/mysqld/mysqld.sock
gefehlt. Das Problem, das Sie verlinkt haben, hat diese Datei.Antworten:
So finden Sie alle Socket-Dateien auf Ihrem System:
Auf meinem MySQL-Serversystem war der Socket geöffnet
/var/lib/mysql/mysql.sock
Wenn Sie herausgefunden haben, wo der Socket geöffnet wird, fügen Sie die Zeile zu Ihrer Datei /etc/my.cnf hinzu oder bearbeiten Sie sie mit dem Pfad zur Socket-Datei:
Manchmal gibt das Systemstart-Skript, das die ausführbare Befehlszeilendatei gestartet hat, ein Flag an
--socket=path
. Dieses Flag könnte den Speicherort my.cnf überschreiben, und dies würde dazu führen, dass ein Socket nicht dort gefunden wird, wo die Datei my.cnf angibt, dass er sein sollte. 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. Wenn Sie sich also nicht darum kümmern, wo sich der Socket befindet, sollte es funktionieren, wenn Sie die Datei my.cnf entsprechend ändern.Stoppen Sie dann den mysqld-Prozess. Wie Sie dies tun, hängt vom System ab.
Wenn Sie ein Superuser im Linux-System sind, versuchen Sie eine der folgenden Möglichkeiten, wenn Sie die spezifische Methode Ihres MySQL-Setups nicht kennen:
service mysqld stop
/etc/init.d/mysqld stop
mysqladmin -u root -p shutdown
pkill -9 mysqld
pgrep mysql
oderps aux | grep mysql | grep -v grep
4969
beendetkill -9 4969
Nachdem Sie dies getan haben, möchten Sie möglicherweise nach einer PID-Datei suchen
/var/run/mysqld/
und diese löschenStellen Sie sicher, dass die Berechtigungen für Ihren Socket so sind, dass jeder Benutzer, den mysqld ausführt, lesen / schreiben kann. Ein einfacher Test besteht darin, es für das vollständige Lesen / Schreiben zu öffnen und zu prüfen, ob es noch funktioniert:
Wenn das Problem dadurch behoben wird, können Sie die Berechtigungen und den Besitz des Sockets je nach Ihren Sicherheitseinstellungen nach Bedarf anpassen.
Außerdem muss das Verzeichnis, in dem sich der Socket befindet, für den Benutzer erreichbar sein, der den mysqld-Prozess ausführt.
quelle
kill -9
; Es gibt verschiedene Möglichkeiten, die ausprobiert werden sollten, bevor es dazu kommen muss.ps -aux | grep mysqld
und sehen, ob andere MySQL-Prozesse ausgeführt werdenVersuchen Sie diesen Befehl,
quelle
sudo service mysqld start
sudo apt-get install mysql-server
wenn du es noch nicht installiert hast :)Dieser Fehler tritt aufgrund mehrerer Installationen von MySQL auf. Führen Sie den folgenden Befehl aus:
Beenden Sie den Prozess mit:
und dann Befehl ausführen:
Beenden Sie diesen Prozess auch, indem Sie Folgendes ausführen:
Jetzt sind Sie vollständig eingestellt und führen nur die folgenden Befehle aus:
Habe wieder sehr gut funktionierendes MySQL
quelle
Die Lösung ist viel einfacher.
mysql.sock
Datei befindet. In meinem Fall war es in/opt/lampp/var/mysql/mysql.sock
sudo Nautilus
starten Hiermit wird Ihr Dateimanager mit Superuser-Berechtigungen gestartet
mysql.sock
Datei befindetmysqld.sock
und klicken Sie dann mit der rechten Maustaste auf die Datei und schneiden Sie sie aus/var/run
und erstellen Sie einen Ordner mit dem Namenmysqld
und geben Sie ihn einmysqld.sock
Datei bei/var/run/mysqld/mysqld.sock
:)quelle
sudo find / -type s
keine enthältmysql.sock
?Sie müssen den MySQL-Dienst nur nach der Installation starten:
Für Ubuntu:
Für CentOS oder RHEL:
quelle
sudo systemctl status mysql.service
undsudo systemctl start mysql.service
. Dies funktioniert für michEs gibt einen Fehler unter Ubuntu mit MySQL 5.6 und 5.7,
var/run/mysqld/
der verschwindet, wenn der MySQL-Dienst gestoppt oder neu gestartet wird. Dies verhindert, dass MySQL überhaupt ausgeführt wird. Ich habe diese Problemumgehung gefunden, die nicht perfekt ist, aber zumindest nach dem Stoppen / Neustarten ausgeführt wird:quelle
# systemd tmpfile settings for mysql # See tmpfiles.d(5) for details
undd /var/run/mysqld 0755 mysql mysql -
nach dem Neustart sollte mysql normal gestartet werden. Dies ist von bugs.launchpad.net/ubuntu/+source/mysql-5.6/+bug/1435823 , Kommentar 3. Wenn Sie dieses Problem mit MySQL 5.7 hatten, kommentieren Sie bitte Launchpad. Je mehr Benutzer sich mit dem Problem befassen, desto mehr Aufmerksamkeit wird es erhalten./etc/tmpfiles.d/mysql.conf
dem Kommentar eines Motorrads hat dieses Problem für mich behoben. Auf einem Centos 7-Betriebssystem und mitmysql Ver 15.1 Distrib 10.3.11-MariaDB,
.Okay, kopieren Sie einfach diese Codes und fügen Sie sie ein: Dies sollte im Terminal innerhalb eines Servers erfolgen, wenn Ihre MySQL-Datenbank nicht ordnungsgemäß installiert ist und wenn die folgende Fehlermeldung angezeigt wird: 'Verbindung zum lokalen MySQL-Server über Socket nicht möglich' / var / run / mysqld / mysqld.sock '(2)'.
Stoppen Sie MySql
Starten Sie es neu oder starten Sie es
Erstellen Sie einen Link wie diesen und geben Sie ihn an das System weiter
Führen Sie eine sichere Installation aus, die den gesamten Prozess zum Konfigurieren von MySQL steuert
quelle
Can't connect
Fehler, wenn ich versuche, über dem Befehl auszuführen.Ich hatte den gleichen Fehler und stellte fest, dass dies auf ein Upgrade der Pakete zurückzuführen war. Nach dem Neustart meines Systems habe ich den Fehler behoben.
Ich denke, aufgrund der Aktualisierung von SQL-Bibliotheken / -Paketen ist dieser Fehler aufgetreten. Versuchen Sie dies also, wenn Sie ein Upgrade durchführen :)
quelle
Es gibt viele Gründe für dieses Problem, aber manchmal starten Sie einfach den MySQL-Server neu, um das Problem zu beheben.
quelle
Verwenden von XAMPP unter Ubuntu:
Erstellen Sie einen Ordner namens mysqld im Verzeichnis / var / run . Sie können dies mit dem Befehl erreichen
sudo mkdir /var/run/mysqld
.Erstellen Sie einen symbolischen Link zur Datei mysql.sock , die beim Start vom XAMPP-Server erstellt wird. Sie können den Befehl verwenden
sudo ln -s /opt/lampp/var/mysql/mysql.sock /var/run/mysqld/mysqld.sock
.Viel Glück! Ich hoffe, dass Sie diesmal damit durchkommen.
quelle
Die Antwort des Benutzerladeschritts hat bei mir funktioniert. Manchmal muss die Datei in
/etc/mysql/my.cnf
Zeile zum Client hinzufügen bearbeitet werdenquelle
mysql: unknown variable 'Host=127.0.0.1'
Host
müssen Kleinbuchstaben seinhost
und es wird funktionieren. Auch diese Lösung hat bei mir funktioniert.* Fehler: 'Verbindung zum lokalen MySQL-Server über Socket nicht möglich' /var/run/mysqld/mysqld.sock '(2)'
Lösungen
schließlich deinstallieren und mysql neu installieren. ** **.
dann erneut installieren von
Nach diesem Vorgang werden 164 MB zusätzlicher Speicherplatz verwendet.
...... ....... .......
Endlich werden Sie diese Zeilen bekommen ....
Libhtml-template-perl einrichten (2.95-1) ...
Mysql-common-5.6 (5.6.16-1 ~ exp1) einrichten ... Trigger für libc-bin verarbeiten (2.19-0ubuntu6) Trigger für ureadahead verarbeiten (0.100.0-16) ...
Und dann
root @ ubuntu1404: ~ # mysql -u root -p (für jedes Passwort, das du zuerst verwenden solltest)
Passwort eingeben:
Hinweis: Das eingegebene Passwort sollte mit dem Passwort für die Installationszeit von MySQL übereinstimmen (wie .root, System, Admin, Rahul usw.).
Geben Sie dann ein
USE rahul_db (Datenbankname);
Vielen Dank.**
quelle
mysql-server-5.6/5.5, mysql-client-5.6/5.5
. Vielen Dank!E: Package 'mysql-server-5.6' has no installation candidate
, es existiert nicht in Ubuntu 18.04Stellen Sie sicher, dass Ihr unzugänglicher Socket-Dateipfad mit '/var/run/mysqld/mysqld.sock' identisch ist. Andernfalls ändern Sie den Pfad wie Ihren. Stoppen Sie die mysqld
Wenn der Prozess noch läuft;
Entfernen Sie das MySQL-Verzeichnis, in dem der Socket erstellt werden soll. Für mich war es nicht erlaubt zu entfernen, also musste ich gewaltsam entfernen.
Setzen Sie den Besitz auf das Verzeichnis
Starten Sie MySQL
Der Versuch, MySQL zu verbinden
quelle
Ich denke, Ihr MySQL-Server wurde nicht gestartet. Starten Sie den Server also mit einem der folgenden Befehle.
oder
quelle
Vorübergehende Lösung
Vielleicht jemand, der mit diesem Problem konfrontiert ist. Ich verwende MySQL Workbench unter Ubuntu 14 und habe diesen Fehler erhalten.
Finden Sie Ihre Socket-Datei, indem Sie ausführen
sudo find / -type s
, in meinem Fall war es/run/mysqld/mysqld.sock
Also habe ich gerade einen Link zu dieser Datei im
tmp
Verzeichnis erstellt.quelle
/tmp
Ordner, sodass sie mit Sicherheit entfernt wird. Sie können den.sock
Speicherort der Datei ändern . Siehe @ user3002884 Antwort.Zusätzlich können Sie finden
mysqld.sock
in ,/var/run/mysqld
wenn Sie bereits installiert habenmysql-server
durchsudo apt-get install mysql-server
quelle
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)
in
/etc/my.cnf
Fügen Sie diese Zeilen:Und starten Sie den Dienst neu mit:
service mysql restart
das hat bei mir funktioniert
quelle
Dies wurde bereits einige Male erwähnt, aber dies funktionierte sofort für mich:
Service MySQL Neustart
quelle
In meinem Fall wurden zwei mysqld-Prozesse ausgeführt. Die optionalen Prozesse wurden mit pkill -9 mysqld beendet
quelle
Wenn Sie viele Datenbanken und Tabellen auf Ihrem System haben und
innodb_file_per_table
in my.cnf festgelegt haben, gehen Ihrem MySQL-Server möglicherweise die geöffneten Objekte / Dateien (oder besser gesagt die Deskriptoren für diese Objekte) aus. Legen Sie eine neue maximale Anzahl fest mitund starte mysql neu. Dieser Ansatz kann hilfreich sein, wenn der Socket überhaupt nicht erstellt wird. Dies ist jedoch möglicherweise nicht das eigentliche Problem. Es liegt ein Problem zugrunde.
quelle
Ich hatte gerade dieses Problem unter Ubuntu 14.10
Turns,
mysql-server
die nicht mehr installiert waren (irgendwie wurde sie entfernt), aber ich konnte sie nicht einfach installieren, da es einige kaputte Pakete und Abhängigkeitsprobleme / Konflikte gab.Am Ende musste ich mysql neu installieren
quelle
Ich habe mysql in Ubuntu 16.04 /ubuntu/172514/how-do-i-uninstall-mysql deinstalliert
Ich habe mysql https://www.digitalocean.com/community/tutorials/how-to-install-mysql-on-ubuntu-16-04 neu installiert
Das schien zu funktionieren.
quelle
Meine Lösung;
Ubuntu 18.04 (WSL)
/etc/mysql/my.cnf
/etc/mysql/mysql.conf.d/mysqld.cnf
Ich habe den Port geändert. Es hat bei mir funktioniert. Sie können einen anderen Port schreiben. Beispiel 3355
quelle
Warum diesen Fehler bekommen?
Ich habe neue Updates von MySQL-Bibliotheken erhalten, daher habe ich mein Kubuntu-Betriebssystem aktualisiert, nachdem ich diese Fehler erhalten habe.
Befehle, die ich ausprobiert habe und wie ich sie behoben habe.
MySql-Server läuft korrekt, aber als ich versuchte, seine Spenden zu verbinden
Ich habe
/var/run/mysqld/mysqld.sock'.
dieses Verzeichnis überprüft . Meine Dateien existierten nicht.Ich habe auch versucht, diese Befehle zu verbinden, aber bei mir nicht funktioniert.
Nachdem ich ungefähr 2 Stunden verschwendet hatte, fand ich die Lösung
Danach wurde alles für mich repariert.
quelle
Ändern der
host
zu127.0.0.1
für mich gearbeitet.Bearbeiten Sie die Datei in
/etc/mysql/my.cnf
und fügen Sie die folgende Zeile zum Abschnitt hinzu:client
Nachdem Sie damit fertig sind. Führen Sie den folgenden Befehl aus.
quelle
Ich würde auch die MySQL-Konfiguration überprüfen. Ich hatte dieses Problem mit meinem eigenen Server, war aber etwas zu voreilig und habe die innodb_buffer_pool_size für meinen Computer falsch konfiguriert.
innodb_buffer_pool_size = 4096M
Normalerweise läuft es bis 2048 einwandfrei, aber ich glaube, ich habe nicht den Speicher, der für die Unterstützung von 4 Gigs erforderlich ist.
Ich stelle mir vor, dass dies auch mit anderen MySQL-Konfigurationseinstellungen passieren könnte.
quelle
Ich hatte ein ähnliches Problem mit einem CentOS VPS. Wenn MySQL nicht direkt nach dem Start gestartet wird oder immer wieder abstürzt, führen Sie die folgenden Schritte aus:
1) Suchen Sie die Datei my.cnf (meine befand sich in /etc/my.cnf) und fügen Sie die folgende Zeile hinzu:
innodb_force_recovery = X.
Ersetzen Sie X durch eine Zahl von 1 bis 6, beginnend mit 1, und erhöhen Sie dann, wenn MySQL nicht startet. Wenn Sie 4, 5 oder 6 einstellen, können Ihre Daten gelöscht werden. Seien Sie also vorsichtig und lesen Sie http://dev.mysql.com/doc/refman/5.7/en/forcing-innodb-recovery.html vorher .
2) Starten Sie den MySQL-Dienst neu. Es wird nur SELECT ausgeführt, und das ist zu diesem Zeitpunkt normal.
3) Speichern Sie alle Ihre Datenbanken / Schemas nacheinander mit mysqldump. Komprimieren Sie die Speicherauszüge nicht, da Sie sie später sowieso dekomprimieren müssten.
4) Verschieben (oder löschen!) Nur die Verzeichnisse des BD in / var / lib / mysql, wobei die einzelnen Dateien im Stammverzeichnis erhalten bleiben.
5) Stoppen Sie MySQL und kommentieren Sie die in 1) hinzugefügte Zeile aus. Starten Sie MySQL.
6) Stellen Sie alle in 3) abgeladenen Bds wieder her.
Viel Glück!
quelle
Versuchen Sie Folgendes an einer Terminal-Eingabeaufforderung:
Sobald dies möglich ist, können Sie einen neuen Benutzer erstellen und die gewünschten Berechtigungen für die spezifische Datenbank erteilen, auf die sie Zugriff benötigen.
Mysql 5.7 hat einige Dinge geändert und verwendet standardmäßig das auth_socket-Plugin (im Gegensatz zu mysql_native_password) als Root, um das Konto vor Hackerangriffen zu schützen. Sie können dies überschreiben, indem Sie das Plugin-Feld für root festlegen. Wenn Sie jedoch keinen guten Grund haben, sollten Sie den Schutz wahrscheinlich nicht umgehen. Besonders wenn
sudo mysql
es einfacher ist alsmysql -u root -p
sowieso.Ich habe diese Informationen - ausgerechnet - auf einer Raspberry Pi- Hilfeseite herausgefunden. Hat wie ein Zauber funktioniert, nachdem Lubuntu 18.04 mich ein paar Stunden lang geärgert hat.
quelle
Erstellen Sie zuerst dir / var / run / mysqld
mit Befehl:
Fügen Sie dann dem Verzeichnis die richtigen Werte hinzu
Nach diesem Versuch
quelle
Ich hatte genau das gleiche Problem. Nachdem ich eine Stunde lang gekämpft hatte, fand ich einen Weg, dies zu korrigieren, ohne mysql-common, mysql-client, mysql-server neu zu installieren.
Gehen Sie zunächst zu "/ var / run / mysqld". Sie werden feststellen, dass die Datei mysql.sock nicht vorhanden ist. Entfernen Sie einfach das gesamte mysqld-Verzeichnis, erstellen Sie es neu und stellen Sie die erforderlichen Berechtigungen bereit.
Beenden Sie jetzt den MySQL-Prozess in seiner Gesamtheit. Möglicherweise wird beim Ausführen des Befehls "/etc/init.d/mysql status" auch nach dem Herunterfahren des Dienstes "Warten auf Seitenbereinigung" angezeigt.
Verwenden Sie, um den Dienst vollständig zu schließen
Sobald der Prozess beendet ist, starten Sie ihn erneut mit
Und Sie werden sehen, dass es gut funktioniert! Und es wird auch kein Problem geben, es zu stoppen.
quelle