Mysql
 sql >> Datenbank >  >> RDS >> Mysql

So beheben Sie Zugriffsverweigerung für Benutzer „root“ @ „localhost“ (mit Kennwort:Ja) beim Verbinden mit der MySQL-Datenbank

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.

  1. Der Grund für dieses Problem liegt darin, dass Sie dem Benutzer keine globalen Privilegien gewähren.
  2. 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.
  1. Öffnen Sie MySQL Workbench, klicken Sie auf Benutzer und Berechtigungen Menüpunkt im linken Bereich.
  2. Klicken Sie im mittleren Bereich auf den Namen des Benutzerkontos und dann auf Administrative Rollen Tab im rechten Bereich.
  3. Aktivieren Sie dann SELECT Kontrollkästchen in den Globalen Berechtigungen Bereich.
  4. Klicken Sie auf Anwenden Schaltfläche, um die Änderungen zu speichern.
2.1.2 Schemaberechtigungen hinzufügen.
  1. 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.
  2. Ö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.
  3. Klicken Sie auf Eintrag hinzufügen Schaltfläche zum Öffnen des Schemaauswahl-Popup-Fensters zum Auswählen des gewünschten Schemas.
  4. 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.
  5. 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.
  1. Ö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.
  1. 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)