Mysql
 sql >> Base de données >  >> RDS >> Mysql

Comment résoudre l'accès refusé pour l'utilisateur 'root'@'localhost' (en utilisant le mot de passe :Oui) lors de la connexion à la base de données MySQL

Lorsque je connecte des bases de données MySQL dans le code source, tel que le code Java ou le code Python. Je rencontre une erreur que je ne rencontre pas lorsque j'utilise le logiciel outil client MySQL pour le connecter. Le message d'erreur est Accès refusé pour l'utilisateur 'root'@'localhost' (en utilisant le mot de passe :Oui) . Pour résoudre ce problème n'est pas difficile, cet exemple vous dira comment le faire.

1. La raison d'accès refusé.

  1. La raison de ce problème est que vous n'accordez aucun privilège global à l'utilisateur.
  2. Après avoir accordé la sélection privilège global à l'utilisateur, le problème sera résolu.

2. Comment accorder le privilège de sélection de la base de données MySQL à l'utilisateur.

2.1 Accorder un privilège à l'utilisateur via MySQL Workbench.

Si vous utilisez des outils clients MySQL tels que MySQL Workbench pour gérer la base de données MySQL, suivez les étapes ci-dessous.

2.1.1 Ajouter des privilèges globaux.
  1. Ouvrez MySQL Workbench, cliquez sur Utilisateurs et privilèges élément de menu dans le panneau de gauche.
  2. Cliquez sur le nom du compte utilisateur dans le panneau du milieu, puis cliquez sur Rôles d'administration onglet dans le panneau de droite.
  3. Ensuite, cochez la case SELECT case à cocher dans les Privilèges globaux zone.
  4. Cliquez sur Appliquer bouton pour enregistrer les modifications.
2.1.2 Ajouter des privilèges de schéma.
  1. Si vous souhaitez exécuter une commande SQL sur une table de base de données de schéma spéciale, vous devez ajouter les privilèges de schéma associés du schéma (base de données) au compte d'utilisateur.
  2. Ouvrez MySQL Workbench, puis cliquez sur Utilisateurs et privilèges élément de menu dans le panneau de gauche, puis cliquez sur le compte d'utilisateur dans le panneau du milieu, puis cliquez sur Schema Privileges onglet dans le panneau de droite.
  3. Cliquez sur Ajouter une entrée pour ouvrir la fenêtre contextuelle de sélection de schéma afin de sélectionner le schéma souhaité.
  4. Ensuite, cochez la case des privilèges associés (par exemple SELECT , INSÉRER , MISE À JOUR, et SUPPRIMER case à cocher) pour attribuer les privilèges au compte utilisateur.
  5. Cliquez sur Appliquer bouton pour enregistrer les modifications.

2.2 Modifier le privilège de l'utilisateur par ligne de commande.

Si vous souhaitez accorder des privilèges globaux ou de schéma au compte utilisateur MySQL par ligne de commande, veuillez suivre les étapes ci-dessous.

2.2.1 Accorder des privilèges globaux au compte utilisateur par ligne de commande.
  1. Ouvrez un terminal et exécutez la commande ci-dessous.
    :~$ 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 Accorder des privilèges de schéma spéciaux au compte utilisateur.
  1. Ouvrir le terminal exécuté sous la commande.
    :~$ 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)