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 ?
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 :
Solution :
Pour résoudre ce problème, essayez les étapes suivantes :
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;
Remplacez %password% par le mot de passe réel de l'utilisateur « root ».
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&password=rootpassword"); Statement s = (Statement) conn.createStatement(); int result = s.executeUpdate("CREATE DATABASE databasename"); } catch (Exception e) { e.printStackTrace(); } }</code>
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;
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!