Ich habe LAMP unter Ubuntu 12.04 LTS (Precise Pangolin) installiert und dann das Root-Passwort auf phpMyAdmin festgelegt . Ich habe das Passwort vergessen und kann mich jetzt nicht anmelden. Wenn ich versuche, das Passwort über das Terminal zu ändern, erhalte ich:
FEHLER 2002 (HY000): Es kann keine Verbindung zum lokalen MySQL-Server über den Socket '/var/run/mysqld/mysqld.sock' (2) hergestellt werden.
Wie kann ich das beheben? Ich kann LAMP nicht öffnen, deinstallieren oder neu installieren.
mysql
phpmyadmin
lamp
forgot-password
mysql-error-2002
Sushmit Sarmah
quelle
quelle
Antworten:
Ich hatte dieses Problem einmal und löste es durch Installation
mysql-server
. Stellen Sie also sicher, dass Sie das installiert habenmysql-server
, nicht dasmysql-client
oder etwas anderes.Dieser Fehler bedeutet, dass die Datei
/var/run/mysqld/mysqld.sock
nicht vorhanden ist. Wenn Sie sie nicht installiert habenmysql-server
, ist sie nicht vorhanden. Installieren Sie es in diesem Fall mitWenn das
mysql-server
jedoch bereits installiert ist und ausgeführt wird, müssen Sie die Konfigurationsdateien überprüfen.Die Konfigurationsdateien sind:
In
/etc/my.cnf
kann die Socket-Datei-Konfiguration sein/tmp/mysql.sock
und in/etc/mysql/my.cnf
der Socket-Datei-Konfiguration kann sein/var/run/mysqld/mysqld.sock
. Also, entfernen oder umbenennen/etc/mysql/my.cnf
, MySQL verwenden lassen/etc/my.cnf
, dann kann das Problem gelöst werden.quelle
sudo apt-get install mysql-server
Versuche dies:
Auch (um zu sehen, ob es läuft):
Wahrscheinlich handelt es sich nur um eine Fehlkonfiguration in der
my.cnf
Datei/etc/somewhere
(abhängig von der Linux-Distribution ).quelle
/etc/my.cnf
und kommentieren . Dann könnte ich mich verbinden. Danach wurde mir klar, dass ich jetzt diesen Fehler von 2002 bekam, der mich zu dieser Antwort führte, und jetzt funktioniert er wieder. Auf jeden Fall stimme ich Ihnen zu, indem ich eine Erklärung erhalte, warum das Tippen ohne Fehler einen Fehler auslöst .#bind-address = 127.0.0.1
mysql
-h
mysql -h localhost
funktioniert nicht. Stellen Sie sicher, dass Sie die Angabenmysql -h 127.0.0.1
in der Antwort verwenden.Ich sehe alle diese Antworten, aber keine bietet die Möglichkeit, das Passwort zurückzusetzen, und keine akzeptierte Antwort . Die eigentliche Frage ist, dass er sein Passwort vergessen hat , also muss er zurücksetzen, nicht sehen, ob es läuft oder nicht (installiert oder nicht), wie die meisten dieser Antworten implizieren.
So setzen Sie das Passwort zurück
Befolgen Sie diese Schritte (kann hilfreich sein, wenn Sie Ihr Passwort wirklich vergessen und es jederzeit versuchen können, auch wenn Sie sich gerade nicht in der Situation befinden):
Halt
mysql
Oder für andere Distributionsversionen:
Starten Sie MySQL im abgesicherten Modus
Melden Sie sich mit root bei MySQL an
Wählen Sie die zu verwendende MySQL-Datenbank aus
Setzen Sie das Passwort zurück
Spülen Sie die Privilegien
Starten Sie den Server neu
Stoppen Sie den Server und starten Sie ihn erneut
Ubuntu und Debian:
Auf CentOS, Fedora und RHEL:
Melden Sie sich mit einem neuen Passwort an
Geben Sie das neue Passwort ein und genießen Sie Ihren Server erneut, als wäre nichts passiert
Dies wurde aus dem Zurücksetzen eines MySQL-Root-Passworts übernommen .
quelle
repair table user use_frm
ich dieses Problem lösen. - stackoverflow.com/questions/4297592/…update user set authentication_string=password('mynewpassword') where user='root';
Ich habe folgende Schritte versucht:
super user
oder verwendensudo
/etc/mysql/my.cnf
Mit gedit öffnenbind-address
den Wert und ändern Sie ihn in die IP-Adresse des Datenbankserver-Hostcomputers. Für mich war eslocalhost
oder127.0.0.1
sudo service mysql start
Und es hat bei mir funktioniert.
quelle
Ich habe dieses Problem behoben, indem ich den folgenden Befehl ausgeführt habe:
Und wenn Sie auf einem Mac sind und Brew zur Installation von MySQL verwendet haben, verwenden Sie einfach:
quelle
Ich hatte ein ähnliches Problem. MySQL würde nicht starten:
Wenn ich Apparmor deaktiviert habe:
Das Problem ging weg. Das Problem war, dass mysqld versuchte, auf /run/mysqld/mysqld.sock zuzugreifen, aber das Apparmor-Profil gab nur /var/run/mysqld/mysqld.sock die Berechtigung (/ var / run ist mit / run verknüpft, also sind dies tatsächlich das Gleiche). Sie sind sich nicht sicher, warum mysqld den var-Pfad nicht verwendet, da dies in allen Konfigurationsdateien festgelegt ist. Sie können das Problem jedoch beheben, indem Sie Folgendes zu /etc/apparmor.d/usr.sbin.mysqld hinzufügen
quelle
In meinem Fall war die Festplatte voll und mysqld konnte nicht mehr gestartet werden.
Versuchen Sie, den MySQL-Dienst neu zu starten.
oder
Wenn der
stop
Befehl nicht erkannt wird, ist dies definitiv der Speicherplatz. Sie sollten dafür sorgen, dass Speicherplatz in der Partitionmysql
zugewiesen wird, oder die Festplatte vergrößern.Überprüfen Sie den Speicherplatz mit
quelle
Ich habe das gelöst, indem ich den
mysql
Prozess beendet habe:Und dann habe ich den Server erneut gestartet mit:
Funktioniert aber
start
auch:Dann habe ich mich als angemeldet
admin
und war fertig.quelle
Irgendwie hat der MySQL-Serverprozess den Socket nicht erstellt, oder der Client sucht den Socket an der falschen Stelle.
Mein erster Vorschlag wäre zu überprüfen, ob der MySQL-Server läuft. Der zweite Vorschlag könnte sein, läuft der MySQL-Server auf einem anderen Host? Wenn ja, fügen Sie das
-h <hostname>
Flag Ihrem MySQL-Client im Terminal hinzu.Wenn MySQL tatsächlich ausgeführt wird und lokal ausgeführt wird, überprüfen Sie Ihre
my.cnf
Datei. Es sollte eine Linie wie gebenÜberprüfen Sie, ob dies mit dem Socket-Speicherort übereinstimmt, den Sie in Ihrem Beitrag erwähnt haben.
Aus Erfahrung würde ich sagen, dass das wahrscheinlichste Szenario darin besteht, dass Ihr MySQL-Server entweder überhaupt nicht oder nicht auf demselben Host ausgeführt wird, auf dem Sie Ihren MySQL-Client vom Terminal aus ausführen.
quelle
Ich hatte gerade das gleiche Problem, nachdem ich meinen Produktionsserver neu starten musste. Ich verwende Debian 8.1 (Jessie) auf einem DigitalOcean-Droplet.
Folgendes habe ich getan, um mein Problem zu beheben:
Überprüfen Sie, ob die Datei
/var/run/mysqld/mysqld.sock
vorhanden ist. Wenn dies nicht der Fall ist, erstellen Sie es manuell durch Eingabetouch /var/run/mysqld/mysqld.sock
(was ich tun musste).Der MySQL-Prozess kann diese Datei also verwenden. Ändern Sie den Besitz dieser Datei durch Eingabe
chown mysql /var/run/mysqld/mysqld.sock
.Starten Sie nach Abschluss von '2' den MySQL-Dienst neu, indem Sie
service mysql restart
oder eingeben/etc/init.d/mysql restart
.Nachdem ich die obigen Schritte durchlaufen hatte, wurde mein Problem behoben. Ich habe dieses Problem selten und es gibt wahrscheinlich einen besseren Weg, also geben Sie auf jeden Fall konstruktives Feedback, wenn nötig :).
quelle
Ihr MySQL-Server läuft möglicherweise nicht. Stellen Sie sicher, dass es ausgeführt wird, indem Sie
mysql.server start
in das Terminal eingeben .quelle
Überprüfen Sie den
"bind-adress"
Parameter in my.cnf.Andernfalls versuchen Sie es mit dem Befehl:
-h für Host
127.0.0.1
, dh localhost-P (Hinweis -P als Großbuchstaben) für Port
3306
, dh den Standardport für MySQLquelle
Folgendes hat bei mir funktioniert:
Dadurch wird eine Verknüpfung erstellt.
quelle
Wenn Sie Amazon EC2 verwenden und dieses Problem in der Instanz auftritt , müssen Sie nur Folgendes tun:
In Amazon EC2 ist kein Server installiert (nur der Client ist installiert). In diesem Fall müssen Sie diesen auf Ihrer Instanz installieren und danach versuchen
um zu überprüfen, ob das funktioniert hat.
quelle
Ich denke, wann immer Sie den Fehler bekommen
Ich werde empfehlen, zuerst zu überprüfen, ob Ihr
mysql
Daemon ausgeführt wird ... Meistens wird er nicht standardmäßig ausgeführt. Sie können es überprüfen durch/etc/init.d/mysqld status
.Wenn es nicht läuft, starten Sie es zuerst:
Ich wette, es wird 110% funktionieren.
quelle
Anstatt localhost zu verwenden:
Verwenden Sie 127.0.0.1
(Beachten Sie auch, dass zwischen -p und mypassword kein Leerzeichen steht.)
Genießen :)
quelle
127.0.0.1
funktioniert, währendlocalhost
es nicht funktioniert?!Stellen Sie sicher, dass Sie Backups wichtiger Datenbanken haben, und deinstallieren Sie dann MySQL- bezogene Inhalte:
Dann installieren Sie es erneut :
Dies funktionierte für mich und die Daten wurden aufbewahrt.
Wenn PHP MySQL Fehler anzeigt, müssen Sie PHP MySQL möglicherweise neu installieren :
quelle
Ich habe auch das gleiche Problem, es wird auftreten, wenn Ihr
mysql server
nicht standardmäßig ausgeführt wird. Es wird nach einigen Sekunden wieder gestoppt, so dass Sie erneut den$ sudo service mysql start
Befehl ( ) ausführen, den Sie ändern können, wenn Sie wissen.Verwenden Sie dazu den Befehl
(Geben Sie bei Bedarf ein Benutzerpasswort ein, da wir es verwenden
sudo
) und führen Sie es dann ausJetzt hast du deine Datenbank
quelle
Wenn Ihre Installation kürzlich durchgeführt wurde, sollten Sie bestätigen, ob es sich bei Ihrer Installation um den Installationsserver handelt ... als MySQL-Server-5.5. Möglicherweise haben Sie nur "MySQL" installiert. Dies ist nur der Client anstelle des Servers.
quelle
Wenn Sie XAMPP auf Ihrem Linux-Computer installiert haben , versuchen Sie, Ihre
my.cnf
Datei von/opt/lampp/etc/my.cnf
nach zu kopieren/etc/my.cnf
.Führen Sie dann das
mysql -u root
erneut aus ... Sie sollten jetzt den richtigen Socket haben und den MySQL-Client ausführen können.quelle
Ich habe auch dieses Problem, aber ich habe es gerade getan:
Es hat bei mir funktioniert.
quelle
Ich habe die Lösung gefunden
Vor dem Auslösen des Befehls:
mysql_secure_installation
sudo systemctl stop mariadb
sudo systemctl start mariadb
mysql_secure_installation
Dann werden Sie nach dem Root-Passwort gefragt und Sie können einfach die Eingabetaste drücken und Ihr neues Root-Passwort festlegen.
quelle
In meinem Fall wurde der Standardport 3306 von einem anderen Prozess verwendet und daher nicht gestartet. Nachdem ich den anderen Dienst gestoppt und getan hatte
sudo service mysql start
, funktionierte es gut. Übrigens können Sie so etwas wiesudo lsof -Pn -iTCP:3306
sehen, wer möglicherweise den Port verwendet.quelle
In meinem Fall hat es durch F & E funktioniert:
Ich kann eine Verbindung zu MySQL herstellen
Aber es funktioniert nicht mit
mysql -u root -p
.Ich habe keine
bind-address
in my.cnf gefunden . Also habe ich den Parametersocket=/var/lib/mysql/mysqld.sock
in überkommentiertmy.cnf
dem ich ein Problem mit der Anmeldung hatte, .Nach dem Neustart des Dienstes ging es gut:
quelle
Ich habe dieses Problem mit Neustart von MySQL gelöst
/etc/init.d/mysql stop
und
/etc/init.d/mysql start
das ist es.
quelle
Aus Erfahrung sage ich, dass Sie zuerst überprüfen müssen, ob der Server ausgeführt wird, und dann versuchen müssen, MySQL zu konfigurieren. Die letzte Lösung besteht darin, MySQL neu zu installieren.
quelle
Öffnen Sie das Terminal und geben Sie Folgendes ein:
Sowohl der MySQL-Datenbankkernclient als auch die MySQL Server-Pakete haben dieselbe Version 5.5. MySQL Client 5.5 und MySQL Server 5.5 sind die aktuellen "besten" Versionen dieser Pakete in Ubuntu 14.04, wie von den Paketbetreuern festgelegt.
Wenn Sie lieber MySQL Client 5.6 und MySQL Server 5.6 installieren möchten, finden Sie die Pakete mysql-client-core-5.6 und mysql-server-5.6 auch im Ubuntu Software Center. Wichtig ist, dass die Client- und Server-Versionsnummern in beiden Fällen übereinstimmen.
Das hat bei mir funktioniert.
quelle
Überprüfen Sie, ob Sie die richtigen Rechte haben:
Ich hatte die gleichen Probleme und das hat bei mir funktioniert. Danach konnte ich MySQL starten.
quelle
In meinem Fall scheint es mir nicht möglich zu sein, den MySQL-Prozess zu beenden, wenn ich ausgeführt werde
Der MySQL-Prozess war immer da, es sieht so aus, als würde er die Socket-Datei blockieren und der neue MySQL-Prozess konnte ihn nicht selbst erstellen.
das hat also geholfen
Jetzt kann ich mich mit der Datenbank anmelden
So aktualisieren Sie das Root-Passwort:
PS : Ich hatte Probleme beim Aktualisieren des Root-Passwods. Es scheint ein Problem mit dem Plugin "auth_socket" zu sein, daher musste ich einen neuen Benutzer mit vollen Berechtigungen erstellen
Dadurch wird der Benutzer "super" ohne Passwort erstellt und Sie können sich mit verbinden
mysql -u super
quelle
use mysql;
<br> und die Sie jetzt verwenden können <br>UPDATE user SET authentication_string=password('YOURPASSWORDHERE') WHERE user='root'; FLUSH PRIVILEGES;
Auf dem Debian-Server Jessie bestand meine Arbeitslösung darin, einfach zu arbeiten
als Root-Benutzer
quelle