När jag ansluter MySQL-databaser i källkod, som Java-kod eller Python-kod. Jag stöter på ett fel som jag inte möter när jag använder MySQL-klientverktyget för att ansluta det. Felmeddelandet är Åtkomst nekad för användare 'root'@'localhost' (med lösenord:Ja) . Det är inte svårt att lösa det här problemet, det här exemplet kommer att berätta hur du gör.
1. Anledningen till nekad åtkomst.
- Anledningen till det här problemet är att du inte beviljar några globala privilegier till användaren.
- Så efter att du har beviljat valet global behörighet till användaren, då kommer problemet att åtgärdas.
2. Hur man beviljar MySQL Database Select Privilege åt användaren.
2.1 Bevilja privilegier till användare genom MySQL Workbench.
Om du använder MySQL-klientverktyg som MySQL Workbench för att hantera MySQL-databas, följ stegen nedan.
2.1.1 Lägg till globala privilegier.
- Öppna MySQL Workbench, klicka på Användare och rättigheter menyalternativ i den vänstra panelen.
- Klicka på användarkontots namn i mittpanelen och klicka sedan på Administrativa roller fliken i den högra panelen.
- Markera sedan VÄLJ kryssrutan i Globala privilegier område.
- Klicka på Använd för att spara ändringarna.
2.1.2 Lägg till schemaprivilegier.
- Om du vill köra SQL-kommando på en speciell schemadatabastabell, bör du lägga till relaterade schemabehörigheter för schemat(databasen) till användarkontot.
- Öppna MySQL Workbench och klicka sedan på Användare och rättigheter menyalternativ i den vänstra panelen, klicka sedan på användarkontot i mittenpanelen och klicka sedan på Schemabehörigheter fliken i den högra panelen.
- Klicka på Lägg till post knappen för att öppna popupfönstret för val av schema för att välja önskat schema.
- Markera sedan kryssrutan för relaterade behörigheter (till exempel VÄLJ , INSERT , UPPDATERA, och RADERA kryssruta) för att tilldela behörigheterna till användarkontot.
- Klicka på Använd för att spara ändringarna.
2.2 Ändra användarrättigheter med kommandorad.
Om du vill ge globala eller schema-privilegier till MySQL-användarkontot via kommandoraden, följ stegen nedan.
2.2.1 Ge globala rättigheter till användarkontot via kommandorad.
- Öppna en terminal och kör kommandot nedan.
:~$ 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 Ge användarkontot särskilda schemabehörigheter.
- Öppna terminalen kör under kommandot.
:~$ 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)