Wenn ich MySQL-Datenbanken im Quellcode anbinde, z. B. Java-Code oder Python-Code. Ich stoße auf einen Fehler, der nicht auftritt, wenn ich die MySQL-Client-Tool-Software verwende, um eine Verbindung herzustellen. Die Fehlermeldung lautet Zugriff verweigert für Benutzer ‚root‘@‘localhost‘ (mit Passwort:Ja) . Dieses Problem zu lösen ist nicht schwer, dieses Beispiel zeigt Ihnen, wie es geht.
1. Der Grund für die Zugriffsverweigerung.
- Der Grund für dieses Problem liegt darin, dass Sie dem Benutzer keine globalen Privilegien gewähren.
- Also, nachdem Sie die Auswahl gewährt haben globales Privileg für den Benutzer, dann wird das Problem behoben.
2. So gewähren Sie dem Benutzer die Berechtigung zur Auswahl der MySQL-Datenbank.
2.1 Gewähren Sie Benutzern Privilegien über MySQL Workbench.
Wenn Sie MySQL-Client-Tools wie MySQL Workbench verwenden, um die MySQL-Datenbank zu verwalten, führen Sie die folgenden Schritte aus.
2.1.1 Globale Berechtigungen hinzufügen.
- Öffnen Sie MySQL Workbench, klicken Sie auf Benutzer und Berechtigungen Menüpunkt im linken Bereich.
- Klicken Sie im mittleren Bereich auf den Namen des Benutzerkontos und dann auf Administrative Rollen Tab im rechten Bereich.
- Aktivieren Sie dann SELECT Kontrollkästchen in den Globalen Berechtigungen Bereich.
- Klicken Sie auf Anwenden Schaltfläche, um die Änderungen zu speichern.
2.1.2 Schemaberechtigungen hinzufügen.
- Wenn Sie einen SQL-Befehl für eine spezielle Schema-Datenbanktabelle ausführen möchten, sollten Sie dem Benutzerkonto zugehörige Schema-Privilegien des Schemas (Datenbank) hinzufügen.
- Öffnen Sie MySQL Workbench und klicken Sie dann auf Benutzer und Berechtigungen Menüelement im linken Bereich, klicken Sie dann auf das Benutzerkonto im mittleren Bereich und dann auf Schema-Berechtigungen Tab im rechten Bereich.
- Klicken Sie auf Eintrag hinzufügen Schaltfläche zum Öffnen des Schemaauswahl-Popup-Fensters zum Auswählen des gewünschten Schemas.
- Wählen Sie dann das entsprechende Kontrollkästchen für Berechtigungen aus (z. B. AUSWÄHLEN , EINFÜGEN , AKTUALISIEREN, und LÖSCHEN Kontrollkästchen), um dem Benutzerkonto die Berechtigungen zuzuweisen.
- Klicken Sie auf Anwenden Schaltfläche, um die Änderungen zu speichern.
2.2 Benutzerrechte per Befehlszeile ändern.
Wenn Sie dem MySQL-Benutzerkonto über die Befehlszeile globale oder Schema-Privilegien erteilen möchten, führen Sie bitte die folgenden Schritte aus.
2.2.1 Gewähren Sie dem Benutzerkonto globale Berechtigungen über die Befehlszeile.
- Öffnen Sie ein Terminal und führen Sie den folgenden Befehl aus.
:~$ mysql -u root -p Enter password: mysql> GRANT SELECT ON *.* TO 'jerry'@'localhost' WITH GRANT OPTION; Query OK, 0 rows affected (0.00 sec)
2.2.2 Gewähren Sie dem Benutzerkonto spezielle Schema-Privilegien.
- Open terminal run below command.
:~$ mysql -u root -p Enter password: mysql> GRANT SELECT,UPDATE,INSERT,DELETE ON dev2qa_example.* TO 'jerry'@'localhost'; Query OK, 0 rows affected (0.00 sec) mysql> GRANT ALL PRIVILEGES ON dev2qa_example.* TO 'jerry'@'localhost'; Query OK, 0 rows affected (0.00 sec)