Erreur d'accès refusé MySQL : dépannage et résolution
Lorsque vous essayez d'exécuter des requêtes MySQL, vous pouvez rencontrer l'erreur « ERREUR 1044 (42000) » : Accès refusé pour l'utilisateur '''@'localhost' à la base de données 'db''. Cette erreur indique des autorisations insuffisantes pour que l'utilisateur actuel accède à la base de données demandée.
Comprendre l'erreur
Le message d'erreur « Accès refusé » suggère que l'utilisateur tente d'exécuter la requête ne dispose pas des privilèges requis pour se connecter à la base de données ou effectuer l'opération souhaitée. Dans ce cas précis, l'utilisateur tentant d'établir une connexion à la base de données est identifié par une chaîne vide ('') provenant de l'hôte local.
Identification de la cause première
Pour résoudre l'erreur, il est important d'examiner les paramètres et les privilèges du compte utilisateur. Vous pouvez utiliser la commande "show grants" pour afficher les privilèges accordés à l'utilisateur actuel. Dans l'exemple fourni, les autorisations suivantes sont affichées :
GRANT USAGE ON *.* TO ''@'localhost'
Cette sortie indique que l'utilisateur de chaîne vide de localhost a obtenu les privilèges USAGE sur toutes les bases de données. Bien que cela permette à l'utilisateur de se connecter à MySQL, cela n'accorde pas l'autorisation de créer ou de manipuler des bases de données ou des tables.
Résoudre le problème
Pour résoudre l'erreur, vous peut accorder les privilèges nécessaires à l'utilisateur souhaité. Cependant, comme vous ne disposez actuellement d’aucun identifiant utilisateur, vous devrez en créer un. Cependant, vous devrez créer un compte utilisateur avec les privilèges nécessaires pour effectuer l'opération CREATE USER.
Utilisation du compte racine
Pour vous assurer que vous disposez des droits requis privilèges, vous pouvez tenter de vous connecter à MySQL en utilisant le compte root. Dans l’exemple fourni, les premières tentatives de connexion en tant qu’utilisateur root ont échoué. Pour vous connecter en tant que root, vous devez exécuter la commande suivante dans votre shell Bash, et non dans la ligne de commande MySQL :
mysql -u root -p
Entrez le mot de passe root lorsque vous y êtes invité. Une fois connecté en tant que root, vous pouvez procéder à la création d'un nouvel utilisateur avec les privilèges requis.
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!