Accès à MySQL avec des autorisations utilisateur insuffisantes : résolution de "java.sql.SQLException : accès refusé"
Rencontre de l'exception "java.sql. SQLException : Accès refusé » lors de la connexion à une base de données MySQL via Java peut être frustrant. Cette erreur indique généralement que l'utilisateur qui tente de se connecter ne dispose pas des autorisations appropriées pour accéder à la base de données.
Dans votre cas, l'exception provient de l'extrait de code suivant :
<code class="java">Connection m_connection = DriverManager.getConnection("jdbc:mysql://localhost", "root", "root");</code>
Le code tente pour établir une connexion à une base de données MySQL exécutée sur localhost en utilisant l'utilisateur "root" avec le mot de passe "root". Cependant, l'erreur suggère que ces informations d'identification ne disposent pas des privilèges nécessaires pour accéder à la base de données.
Pour résoudre ce problème, vous devez accorder à l'utilisateur qui tente de se connecter les autorisations appropriées. Dans MySQL, cela peut être réalisé en exécutant la requête suivante :
<code class="sql">GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' IDENTIFIED BY '%password%' WITH GRANT OPTION;</code>
N'oubliez pas de remplacer "%password%" par votre mot de passe MySQL actuel.
Une fois que vous avez exécuté cette requête, vous devrait pouvoir se connecter avec succès à la base de données MySQL en utilisant l'utilisateur "root" et le mot de passe spécifié.
Alternativement, dans votre deuxième extrait de code :
<code class="java">Connection conn = (Connection) DriverManager.getConnection("jdbc:mysql://localhost/?user=root&password=rootpassword"); </code>
Vous utilisez une approche différente pour inclure l'utilisateur et le mot de passe dans l'URL de connexion elle-même. Bien que cette approche puisse être pratique, elle est généralement moins sécurisée car elle expose le mot de passe en texte brut.
Il est toujours recommandé d'utiliser un fichier de configuration ou un autre mécanisme sécurisé pour stocker les informations d'identification de la base de données au lieu de les intégrer directement dans votre code ou URL de connexion.
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!