Heim >Datenbank >MySQL-Tutorial >Warum gibt MySQL „Zugriff verweigert für Benutzer „root' ohne Berechtigungen' zurück und wie kann ich das Problem beheben?

Warum gibt MySQL „Zugriff verweigert für Benutzer „root' ohne Berechtigungen' zurück und wie kann ich das Problem beheben?

Susan Sarandon
Susan SarandonOriginal
2024-12-19 14:22:09967Durchsuche

Why Does MySQL Return

Zugriff für Benutzer „root“ ohne Berechtigungen verweigert: Untersuchung der Grundursache

Dieser häufig auftretende Fehler „Zugriff für Benutzer verweigert“. „‚root‘@‘localhost‘ (mit Passwort: JA) – Keine Privilegien?“ ist nicht auf die leichte Schulter zu nehmen. Es blockiert effektiv den Zugriff von Administratoren auf wichtige Datenbankvorgänge. Das zugrunde liegende Problem ist oft darauf zurückzuführen, dass dem Root-Benutzer die Schema-Berechtigungen entzogen werden, wodurch er machtlos wird.

Eine wichtige Sache: MySQL 5.7 und Socket-Verbindungen

Für MySQL-Versionen 5.7 und Oben ist zu beachten, dass Socket-Verbindungen standardmäßig aktiviert sind. Das bedeutet, dass für den Verbindungsaufbau die Verwendung von „sudo mysql“ ausreicht. Allerdings führt die Ausführung von „SHOW GRANTS FOR root;“ kann ergeben, dass es keine definierten Berechtigungen für den „Root“-Benutzer gibt.

Root-Berechtigungen zurückfordern

Um den Root-Zugriff wiederherzustellen, können die folgenden Schritte unternommen werden:

  1. Identifizieren des Authentifizierungs-Plugins: Führen Sie die Abfrage „SELECT Benutzer, Authentifizierungszeichenfolge, Plugin, Host FROM“ aus mysql.user;" um das für den Root-Benutzer verwendete Authentifizierungs-Plugin zu ermitteln. In den meisten Fällen ist es „auth_socket“.
  2. Wechsel zur nativen Passwortauthentifizierung: Damit Root eine Verbindung mit einem Passwort herstellen kann, aktualisieren Sie den Wert „authentication_string“ in der Tabelle mysql.user mit der Befehl „ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'Current-Root-Password';".
  3. Berechtigungen aktualisieren: Führen Sie „FLUSH PRIVILEGES;“ aus. um die Berechtigungseinstellungen zu aktualisieren.
  4. Änderungen bestätigen: „SELECT user, Authentication_String, Plugin, Host FROM mysql.user;“ wird erneut ausgeführt. sollte nun anzeigen, dass der Root-Benutzer die Authentifizierung „mysql_native_password“ verwendet.

Zusätzliche Überlegungen

Im Fall von MariaDB ist der Befehl „SET PASSWORD FOR ' root'@'localhost' = PASSWORD('manager');" sollte zum Festlegen des Passworts verwendet werden.

Bei diesem Lösungsprozess wird davon ausgegangen, dass der Befehl „sudo mysql_secure_installation“ erfolgreich ausgeführt wurde, bevor der Fehler „Zugriff verweigert“ auftritt. Wenn dieser Befehl noch nicht ausgeführt wurde, wird empfohlen, ihn zuerst auszuführen.

Das obige ist der detaillierte Inhalt vonWarum gibt MySQL „Zugriff verweigert für Benutzer „root' ohne Berechtigungen' zurück und wie kann ich das Problem beheben?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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