Maison > Java > javaDidacticiel > Pourquoi est-ce que j'obtiens l'erreur « Accès refusé pour l'utilisateur \'root\'@\'localhost\'\ » lorsque j'essaie de me connecter à ma base de données MySQL ?

Pourquoi est-ce que j'obtiens l'erreur « Accès refusé pour l'utilisateur \'root\'@\'localhost\'\ » lorsque j'essaie de me connecter à ma base de données MySQL ?

Linda Hamilton
Libérer: 2024-10-26 00:27:28
original
1172 Les gens l'ont consulté

Why am I getting

Problème de connexion MySQL : accès refusé pour l'utilisateur 'root'@'localhost'

Le code que vous avez fourni ne parvient pas à se connecter à la base de données et lance une exception SQLException avec le message "Accès refusé pour l'utilisateur 'root'@'localhost' (en utilisant le mot de passe : OUI)". Ce problème indique que l'utilisateur spécifié ne dispose pas des autorisations nécessaires pour accéder à la base de données.

Causes :

Cette exception peut se produire pour les raisons suivantes :

  • Nom d'utilisateur ou mot de passe incorrect
  • Privilèges insuffisants pour l'utilisateur
  • Pare-feu bloquant l'accès au serveur de base de données

Solution :

Pour résoudre ce problème, essayez les étapes suivantes :

  1. Vérifiez votre nom d'utilisateur et votre mot de passe : Assurez-vous que le nom d'utilisateur et le mot de passe fournis à DriverManager.getConnection () sont corrects.
  2. Accordez les privilèges nécessaires : Exécutez l'instruction SQL suivante pour accorder tous les privilèges à l'utilisateur « root » sur « localhost » :

    GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' IDENTIFIED BY '%password%' WITH GRANT OPTION;
    Copier après la connexion

    Remplacez %password% par le mot de passe réel de l'utilisateur « root ».

  3. Paramètres du pare-feu : Vérifiez si le pare-feu de votre système bloque l'accès au serveur de base de données. . Si tel est le cas, configurez le pare-feu pour autoriser les connexions sur le port utilisé par le serveur de base de données (généralement le port 3306).

Exemple :

Vous avez modifié votre code légèrement pour tenter de créer une base de données tout en gérant les exceptions :

<code class="java">public static void main(String[] args) throws ClassNotFoundException, ServletException, SQLException {
    try {
        Connection conn = (Connection) DriverManager.getConnection("jdbc:mysql://localhost/?user=root&amp;password=rootpassword");
        Statement s = (Statement) conn.createStatement();
        int result = s.executeUpdate("CREATE DATABASE databasename");
    } catch (Exception e) {
        e.printStackTrace();
    }
}</code>
Copier après la connexion

Cependant, la même exception se produit. Dans ce cas, assurez-vous que l'utilisateur « root » dispose des privilèges nécessaires pour créer une base de données. Vous pouvez accorder ce privilège à l'aide de l'instruction SQL suivante :

GRANT CREATE DATABASE ON *.* TO 'root'@'localhost' WITH GRANT OPTION;
Copier après la connexion

En suivant ces étapes, vous devriez pouvoir établir une connexion réussie à la base de données et éviter l'exception « Accès refusé ».

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal