Wanneer ik MySQL-databases verbind in broncode, zoals Java-code of Python-code. Ik kom een fout tegen die ik niet zie wanneer ik MySQL-clienttoolsoftware gebruik om verbinding te maken. De foutmelding is Toegang geweigerd voor gebruiker 'root'@'localhost' (met wachtwoord:Ja) . Het oplossen van dit probleem is niet moeilijk, dit voorbeeld zal u vertellen hoe u dit moet doen.
1. De reden voor geweigerde toegang.
- De reden voor dit probleem is dat u de gebruiker geen algemene rechten toekent.
- Dus nadat je de select . hebt gegeven globale privilege voor de gebruiker, dan wordt het probleem opgelost.
2. Hoe MySQL Database Select Privilege toe te kennen aan de gebruiker.
2.1 Privilege verlenen aan gebruiker via MySQL Workbench.
Als u MySQL-clienttools zoals MySQL Workbench gebruikt om de MySQL-database te beheren, volgt u de onderstaande stappen.
2.1.1 Wereldwijde rechten toevoegen.
- Open MySQL Workbench, klik op Gebruikers en rechten menu-item in het linkerdeelvenster.
- Klik op de naam van de gebruikersaccount in het middelste paneel en klik vervolgens op de Beheerdersrollen tabblad in het rechterdeelvenster.
- Controleer vervolgens de SELECT selectievakje in de Wereldwijde rechten gebied.
- Klik op Toepassen om de wijzigingen op te slaan.
2.1.2 Schemarechten toevoegen.
- Als u het SQL-commando wilt uitvoeren op een speciale schemadatabasetabel, moet u gerelateerde schemaprivileges van het schema(database) aan het gebruikersaccount toevoegen.
- Open MySQL Workbench en klik vervolgens op Gebruikers en rechten menu-item in het linkerdeelvenster, klik vervolgens op het gebruikersaccount in het middelste deelvenster en klik vervolgens op Schemarechten tabblad in het rechterdeelvenster.
- Klik op Invoer toevoegen om het pop-upvenster voor schemaselectie te openen om het gewenste schema te selecteren.
- Selecteer vervolgens het selectievakje voor gerelateerde privileges (bijvoorbeeld SELECT , INSERT , UPDATE, en VERWIJDEREN selectievakje) om de rechten aan het gebruikersaccount toe te wijzen.
- Klik op de Toepassen om de wijzigingen op te slaan.
2.2 Gebruikersrechten wijzigen via de opdrachtregel.
Als u via de opdrachtregel globale of schemarechten aan een MySQL-gebruikersaccount wilt verlenen, volgt u de onderstaande stappen.
2.2.1 Wereldwijde rechten toekennen aan gebruikersaccount via de opdrachtregel.
- Open een terminal en voer het onderstaande commando uit.
:~$ 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 Speciale schemarechten toekennen aan gebruikersaccount.
- Open terminal voer het onderstaande commando uit.
:~$ 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)