Når jeg forbinder MySQL-databaser i kildekode, såsom Java-kode eller Python-kode. Jeg støder på en fejl, som jeg ikke møder, når jeg bruger MySQL-klientværktøjssoftware til at forbinde den. Fejlmeddelelsen er Adgang nægtet for bruger 'root'@'localhost' (ved hjælp af adgangskode:Ja) . Det er ikke svært at løse dette problem, dette eksempel vil fortælle dig, hvordan du gør det.
1. Årsagen til nægtet adgang.
- Årsagen til dette problem er, at du ikke giver nogen globale rettigheder til brugeren.
- Så efter at du har givet vælg globalt privilegium til brugeren, så løses problemet.
2. Sådan giver du MySQL Database Select Privilege til brugeren.
2.1 Giv brugeren privilegier gennem MySQL Workbench.
Hvis du bruger MySQL-klientværktøjer såsom MySQL Workbench til at administrere MySQL-databasen, skal du følge nedenstående trin.
2.1.1 Tilføj globale privilegier.
- Åbn MySQL Workbench, klik på Brugere og rettigheder menupunkt i venstre panel.
- Klik på brugerkontonavnet i midterpanelet, og klik derefter på Administrative roller fanen i højre panel.
- Marker derefter VÆLG afkrydsningsfeltet i Globale rettigheder område.
- Klik på Anvend knappen for at gemme ændringerne.
2.1.2 Tilføj skemaprivilegier.
- Hvis du ønsker at udføre SQL-kommando på en speciel skemadatabasetabel, skal du tilføje relaterede skemaprivilegier for skemaet(databasen) til brugerkontoen.
- Åbn MySQL Workbench, og klik derefter på Brugere og rettigheder menupunkt i venstre panel, klik derefter på brugerkontoen i midterpanelet, og klik derefter på Skemaprivilegier fanen i højre panel.
- Klik på Tilføj post knappen for at åbne popup-vinduet til valg af skema for at vælge det ønskede skema.
- Vælg derefter afkrydsningsfeltet for relaterede privilegier (f.eks. VÆLG , INDSÆT , OPDATERING, og SLET afkrydsningsfelt) for at tildele rettighederne til brugerkontoen.
- Klik på Anvend knappen for at gemme ændringerne.
2.2 Skift brugerrettigheder med kommandolinje.
Hvis du vil tildele globale eller skemamæssige rettigheder til MySQL-brugerkonto via kommandolinje, skal du følge nedenstående trin.
2.2.1 Giv globale privilegier til brugerkonto via kommandolinje.
- Åbn en terminal, og kør kommandoen nedenfor.
:~$ 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 Tildel særlige skema-privilegier til brugerkontoen.
- Åbn terminal, kør under kommandoen.
:~$ 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)