MySQL-Anmeldefehler beheben: „Zugriff für Benutzer ‚root‘@‚localhost‘ verweigert“

MySQL-Anmeldefehler beheben: „Zugriff für Benutzer ‚root‘@‚localhost‘ verweigert“

Erstens weiß ich nicht, warum ich mich über die Befehlszeile oder Workbench nicht bei MySQL anmelden kann und die Meldung „Zugriff für Benutzer ‚root‘@‚localhost‘ verweigert“ angezeigt wird.
Mehrmaliges Deinstallieren und Neuinstallieren der Datenbank hat nicht geholfen. Es scheint, dass die Daten nicht richtig bereinigt werden. Die im Lösungsprozess aufgetretenen Fallstricke werden hier aufgezeichnet und weitergegeben.

Gültige Betriebsdatensätze:

1. Überspringen Sie zunächst die Berechtigungen zum Anmelden bei MySQL und Anzeigen der Benutzertabelle.

Stoppen Sie den MySQL-Dienst ~ $ sudo service mysql stop

Starten Sie MySQL~$ sudo mysqld_safe --skip-grant-tables &

Beachten:

Es kann vorkommen, dass mysqld_safe angezeigt wird. Das Verzeichnis '/var/run/mysqld' für die UNIX-Socket-Datei existiert nicht.

Lösung: (Ich habe es versucht und festgestellt, dass sudo hinzugefügt werden muss)

sudo mkdir -p /var/run/mysqld
sudo chown mysql:mysql /var/run/mysqld

Führen Sie den obigen abgesicherten Modus erneut aus, um mysql ~$ sudo mysqld_safe --skip-grant-tables &

Dieses Mal zeigt die Eingabeaufforderung: mysqld_safe Staring mysqld deamon with database from /var/lib/mysql

Dieses Mal können Sie sich ohne Passwort anmelden: mysql -u root Drücken Sie die Eingabetaste, um sich anzumelden

Die SQL-Anweisung zum Abfragen der mysql.user-Tabelle lautet wie folgt:

Bilder hinzufügen (werden später hinzugefügt)

Jemand anderes hat vorgeschlagen, es so zu machen, aber ich habe es nicht ausprobiert.

Öffnen und bearbeiten Sie /etc/my.cnf oder /etc/mysql/my.cnf, abhängig von Ihrer Distribution.
Skip-Grant-Tabellen unter [mysqld] hinzufügen

2. Es wurde festgestellt, dass das Plugin des Benutzers socket_plugin ist und in mysql_native_password geändert wurde

Ändern Sie die Plugin-Berechtigungen von Root:

mysql.user aktualisieren, authentication_string=PASSWORD('newPwd'), plugin='mysql_native_password' festlegen, wobei user='root';
Berechtigungen leeren;
aufhören;

(Beachten Sie, dass die Änderung hier korrekt sein muss, damit es nicht wie beim Autor ist, der den Inhalt des Plug-Ins versehentlich um einen Buchstaben ändert und dann die folgenden Probleme hat.)

3. Es gibt andere Benutzer in der Benutzertabelle. Root kann sich nicht anmelden, aber Sie können sich mit anderen Benutzern anmelden. Nach der Suche habe ich die folgenden gültigen Operationen gefunden:

Im Installationsverzeichnis von mysql befindet sich normalerweise eine Datei debain.cnf in /etc/mysql, die Benutzer und Passwort enthält. Verwenden Sie diese Datei, um sich anzumelden und das Passwort zu kopieren. Anschließend können Sie das Plugin des Benutzertabellenstamms erneut ändern. Die Vorgehensweise ist dieselbe wie oben.

Starten Sie den MySQL-Dienst neu, sudo service mysql restart;

Sie können sich als Root-Benutzer anmelden.

Referenzblog:

MySQL-FEHLER 1698 (28000) Fehler https://www.jb51.net/article/117566.htm

mysql So zeigen Sie die aktuell verwendete Konfigurationsdatei my.cnf an https://www.jb51.net/article/110395.htm

linux -- Ubuntu: MySQL-Anmeldenamen und -Passwort anzeigen und ändern, phpmyadmin installieren https://www.jb51.net/article/174925.htm

Zusammenfassen

Oben finden Sie die Einführung des Herausgebers zur Lösung des MySQL-Anmeldefehlers: „Zugriff verweigert für Benutzer ‚root‘@‚localhost‘“. Ich hoffe, es wird für alle hilfreich sein!

Das könnte Sie auch interessieren:
  • Lösung für das Problem des verweigerten Zugriffs für den Benutzer „root“ @ „localhost“ (mit Kennwort: JA) bei der Anmeldung bei MySQL 8.0 unter Win10
  • Installieren Sie den Quellcode der MySQL-Datenbank 5.6 unter Linux und ändern Sie das Anmeldebenutzerkennwort
  • Node.js+Express+MySql zur Realisierung von Benutzeranmelde- und Registrierungsfunktionen
  • Verwenden Sie Node und Express, um eine Verbindung zu MySQL herzustellen und den Anmelde- und Registrierungscode zu implementieren
  • So ändern Sie das Kennwort von MySQL 5.1 und melden sich remote bei der MySQL-Datenbank an

<<:  JavaScript zur Implementierung der Funktion zum Ändern des Avatars

>>:  So verwandeln Sie ein JAR-Paket in einen Docker-Container

Artikel empfehlen

Der Unterschied zwischen MySQL-Datenbankhost 127.0.0.1 und localhost

Viele meiner Freunde haben möglicherweise ein Pro...

CSS3 realisiert die Animation des Shuttle-Sternenhimmels

Ergebnis: html <canvas id="Sternenfeld&qu...

Optimierung der Web-Frontend-Leistung

Best Practices für die Web-Frontend-Optimierung: ...

Ändern des Standard-Bildlaufleistenstils im Front-End-Projekt (Zusammenfassung)

Ich habe viele Projekte geschrieben, bei denen de...

Velocity.js implementiert den Seiten-Scrolling-Umschalteffekt

Heute werde ich ein kleines Javascript-Animations...

Detaillierte Erklärung zur Verwendung des Linux-Befehls Traceroute

Mithilfe von Traceroute können wir den Pfad ermit...

So sichern Sie MySQL regelmäßig und laden es auf Qiniu hoch

In den meisten Anwendungsszenarien müssen wir wic...