Heim > Datenbank > MySQL-Tutorial > Warum erhalte ich in MySQL die Meldung „Zugriff verweigert für Benutzer ‚root'@'localhost'' und wie kann ich das beheben?

Warum erhalte ich in MySQL die Meldung „Zugriff verweigert für Benutzer ‚root'@'localhost'' und wie kann ich das beheben?

DDD
Freigeben: 2024-12-15 09:28:13
Original
321 Leute haben es durchsucht

Why Am I Getting

Zugriff für Benutzer 'root'@'localhost' aufgrund fehlender Berechtigungen verweigert

Problem:

Benutzer, die versuchen, als Root-Benutzer auf MySQL zuzugreifen, werden mit der Meldung „Zugriff verweigert für Benutzer ‚root‘@‘localhost‘“ konfrontiert. (Passwort verwenden: JA)“-Fehler, der darauf hinweist, dass dem Root-Benutzer die erforderlichen Berechtigungen zum Herstellen einer Verbindung fehlen.

Erklärung:

Standardmäßig MySQL 5.7 und höher verlassen sich in erster Linie auf die Socket-Authentifizierung für lokale Verbindungen. Das bedeutet, dass für den Verbindungsversuch über die Befehlszeile als „sudo mysql“ kein Passwort erforderlich ist. Diese Authentifizierungsmethode gewährt dem Root-Benutzer jedoch keine spezifischen Berechtigungen.

Lösung:

So stellen Sie eine passwortbasierte Verbindung her und gewähren dem Root-Benutzer Berechtigungen:

  1. Führen Sie „SELECT user, Authentication_string, Plugin, Host FROM mysql.user;“ aus. Abfrage zur Überprüfung der aktuellen Benutzerkonfiguration. Stellen Sie sicher, dass das Authentifizierungs-Plugin für den Root-Benutzer „auth_socket“ ist.
  2. Führen Sie „ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'Current-Root-Password';“ aus. Anweisung, um die Authentifizierungsmethode des Root-Benutzers von Socket auf Native zu ändern.
  3. Führen Sie „FLUSH PRIVILEGES;“ aus. Befehl, um sicherzustellen, dass die Änderungen wirksam werden.
  4. Wiederholen Sie Schritt 1, um zu bestätigen, dass das Authentifizierungs-Plugin des Root-Benutzers in „mysql_native_password“ geändert wurde.

Zusätzliche Überlegungen:

  • Das „Current-Root-Password“ sollte durch das ersetzt werden Das Passwort des vorhandenen Root-Benutzers.
  • Für MySQL-Versionen vor 5.7 kann die Authentifizierungsmethode „caching_sha2_password“ sein. In diesem Fall verwenden Sie „ALTER USER 'root'@'localhost' IDENTIFIED WITH caching_sha2_password BY 'Current-Root-Password';“ Anweisung stattdessen.
  • Für MariaDB-Benutzer kann der folgende Befehl verwendet werden, um ein Passwort für den Root-Benutzer festzulegen: „SET PASSWORD FOR 'root'@'localhost' = PASSWORD('manager');"

Das obige ist der detaillierte Inhalt vonWarum erhalte ich in MySQL die Meldung „Zugriff verweigert für Benutzer ‚root'@'localhost'' und wie kann ich das beheben?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage