Ich erhalte bei einigen Befehlen, die ich auszuführen versuche, die folgende Fehlermeldung UND jedes Mal, wenn ich dazu aufgefordert werde, kenne ich das Kennwort nicht. (Hinweis: Ich habe gerade meine Ubuntu-Distribution auf 22.04 aktualisiert, hatte aber zuvor kein Kennwort für „root“ festgelegt bzw. ein leeres Kennwort.)
error: 'Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (13)'
Aus den meisten Beiträgen geht hervor, dass das gemeinsame Problem darin besteht, dass der MySQL-Server nicht wirklich läuft. Ich kann jedoch sehen, dass meiner läuft, sudo service mysql status
und die folgenden Befehle geben zurück ...
$ cat /etc/services | grep 3306
mysql 3306/tcp
$ netstat -tulpn | grep 3306
(No info could be read for "-p": geteuid()=1000 but you should be root.)
tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN -
tcp 0 0 127.0.0.1:33060 0.0.0.0:* LISTEN
Diese Befehle geben den Fehler „Verbindung nicht möglich …“ aus:
- mysqladmin -u root -p shutdown
- mysqladmin-Version
- MySQL
- mysql -u root
- mysql -u root -h localhost -p
Das Ausführen mysql -u root -h 127.0.0.1 -p
scheint insofern zu funktionieren, als dass ich zur Eingabe eines Kennworts aufgefordert werde, aber keines meiner vorherigen Kennwörter funktioniert und ich konnte das Root-Kennwort weder ausführen sudo mysqld_safe --skip-grant-tables &
noch sudo mysqld_safe --skip-grant-tables --skip-networking &
erfolgreich zurücksetzen.
Ich bin auch gelaufen...
- sudo apt-get install --reinstall mysql-server
- sudo apt update
- sudo apt upgrade
- sudo apt installiere MySQL-Server
- sudo apt installiere MySQL-Client
- sudo usermod -d /var/lib/mysql/ mysql
- sudo dpkg --configure -a
- und bin den Empfehlungen aus den beiden Top-Antworten auf diesen Beitrag gefolgt:https://stackoverflow.com/questions/41984956/kann das Root-Passwort nicht mit Skip-Grant-Tables auf Ubuntu 16 zurücksetzen
- und habe versucht, MySQL zu deinstallieren, indem ich den Anweisungen folgteHier
- und habe versucht, den Sock-Ordner zu sichern und wie empfohlen wiederherzustellenHier
Zusätzliche zufällige Informationen:
Ich weiß auch, dass es /var/run/mysqld/mysqld.sock
früher in diesem Prozess existierte (ich habe jetzt nur mysql.bak in diesem Verzeichnis), aber wenn ich es ausführe sudo find / -type s
, gibt es nur eine Reihe von Dateien/Verzeichnissen mit „Zugriff verweigert“ zurück (ich nehme an, weil ich in WSL bin), also habe ich nicht geprüft, ob es irgendwo ein weiteres mysql.sock geben könnte.
Ich weiß auch, dass es /etc/mysql/my.cnf
nur auf -> verweist /etc/alternatives/my.cnf
, das (außer einigen Kommentaren) nur Folgendes enthält:
!includedir /etc/mysql/conf.d/
!includedir /etc/mysql/mysql.conf.d/
Antwort1
- Stoppen Sie MySQL (sudo systemctl stop mysql)
- Überprüfen Sie, ob der Prozess gestoppt wurde
- Starten Sie MySQL mit --skip-grant-tables
Alternativ können Sie MySQL bereinigen: sudo apt purge mariadb-server mysql-common Überprüfen Sie, ob /etc/mysql und /var/lib/mysql leer/gelöscht sind
Neu installieren