Heim >Datenbank >MySQL-Tutorial >Warum wird mir „Zugriff verweigert' angezeigt, wenn ich MySQL-Berechtigungen als Root erteile?
Fehlerbehebung beim Fehler „Zugriff verweigert“ bei der Gewährung von Berechtigungen als Root
Fehler „Zugriff verweigert für Benutzer ‚root‘@‘localhost‘“ (mit Passwort: JA)“ beim Gewähren von Berechtigungen kann frustrierend sein, insbesondere wenn Sie das richtige Passwort bestätigt haben und über ausreichende Berechtigungen verfügen. Dieses Problem tritt häufig auf, wenn versucht wird, Berechtigungen für wichtige Systemtabellen wie die Tabelle mysql.users zu erteilen.
Die Wurzel des Problems:
Die Sicherheitsarchitektur von MySQL behält sich vor bestimmte Tabellen, einschließlich der Tabelle mysql.users, für den exklusiven Zugriff durch Benutzer auf Root-Ebene. Aus Sicherheitsgründen ist die Gewährung von Berechtigungen für diese Tabellen an Nicht-Root-Benutzer verboten.
Die Lösung:
Um Berechtigungen erfolgreich zu erteilen und gleichzeitig den Fehler „Zugriff verweigert“ zu vermeiden, ändern Sie die Grant-Anweisung, um die Tabelle mysql.users auszuschließen. Anstelle von . verwenden Sie %.*, um Berechtigungen für alle anderen Datenbankobjekte zu gewähren:
GRANT ALL PRIVILEGES ON `%`.* TO '[user]'@'[hostname]' IDENTIFIED BY '[password]' WITH GRANT OPTION;
Durch den Ausschluss der Tabelle mysql.users respektieren Sie die Sicherheitsbeschränkungen und erlauben den Gewährungsvorgang erfolgreich abzuschließen.
Das obige ist der detaillierte Inhalt vonWarum wird mir „Zugriff verweigert' angezeigt, wenn ich MySQL-Berechtigungen als Root erteile?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!