Maison > Article > développement back-end > Avertissement PHP : mysql_query() : accès refusé à la solution utilisateur
Avertissement PHP : mysql_query() : Accès refusé pour l'utilisateur
Lorsque vous utilisez PHP pour vous connecter à la base de données MySQL, vous rencontrez parfois le message d'erreur suivant :
Avertissement PHP : mysql_query() : Accès refusé pour l'utilisateur 'xxx'@' localhost' (en utilisant le mot de passe : OUI)
En effet, le nom d'utilisateur ou le mot de passe utilisé par PHP pour se connecter à la base de données MySQL est incorrect. Cet article explique comment résoudre ce problème.
Solution
1. Vérifiez si le nom d'utilisateur et le mot de passe MySQL sont corrects
Assurez-vous d'abord que le nom d'utilisateur et le mot de passe MySQL que vous utilisez sont corrects. Vous pouvez essayer d'utiliser la ligne de commande MySQL pour vérifier que votre nom d'utilisateur et votre mot de passe sont corrects :
$ mysql -u votre nom d'utilisateur -p
Par exemple, si votre nom d'utilisateur est "root", entrez la commande suivante :
$ mysql - u root -p
Ensuite, vous serez invité à saisir votre mot de passe. Après avoir saisi le mot de passe, si vous vous connectez avec succès au serveur MySQL, cela signifie que votre nom d'utilisateur et votre mot de passe sont corrects. Sinon, assurez-vous de saisir correctement votre nom d'utilisateur et votre mot de passe.
2. Vérifiez les autorisations d'accès MySQL
Si votre nom d'utilisateur et votre mot de passe sont corrects mais que vous rencontrez toujours des erreurs d'accès refusé, cela peut être dû au fait que votre serveur MySQL n'est pas configuré avec les autorisations correctes. Dans MySQL, seuls les utilisateurs disposant des autorisations suffisantes peuvent accéder à des bases de données et des tables spécifiques.
Vous pouvez vérifier les droits d'accès de l'utilisateur MySQL à l'aide de la commande suivante :
$ SHOW GRANTS FOR user@localhost ;
où user@localhost identifie l'utilisateur MySQL que vous souhaitez vérifier et l'hôte auquel vous vous connectez. Par exemple, si votre nom d'utilisateur est "root", entrez la commande suivante :
$ SHOW GRANTS FOR root@localhost;
Si vous constatez que votre utilisateur MySQL n'a pas l'autorisation d'accéder à une base de données ou une table spécifique, utilisez le commande suivante pour l'autorisation pour cet utilisateur :
$ GRANT ALL PRIVILEGES ON database_name.* TO 'user_name'@'localhost' IDENTIFIED BY 'password' ;
Parmi eux, database_name spécifie le nom de la base de données à laquelle l'accès est accordé, et user_name spécifie le nom d'utilisateur MySQL à autoriser, password précise le mot de passe de l'utilisateur. Par exemple, si vous souhaitez autoriser l'utilisateur root à accéder à la base de données mydb, saisissez la commande suivante :
$ GRANT ALL PRIVILEGES ON mydb.* TO 'root'@'localhost' IDENTIFIED BY 'your_password'; l'autorisation est terminée, vous devriez essayer de vous reconnecter à MySQL et exécuter votre script PHP.
3. Afficher les journaux MySQL
Enfin, si essayer les solutions ci-dessus ne résout toujours pas le problème, il est recommandé de consulter le fichier journal des erreurs de MySQL. Les fichiers journaux se trouvent généralement dans le répertoire /var/log du serveur MySQL (ou sous Windows, cela peut être C:/ProgramData/MySQL/MySQL Server X.X/ ou C:/Program Files/MySQL/MySQL Server X.X/). .
Ouvrez le fichier journal des erreurs et examinez les messages d'erreur qu'il contient pour trouver des informations plus détaillées qui vous aideront à déterminer la cause première du problème.
Conclusion
Dans cet article, nous avons présenté comment résoudre l'erreur PHP Avertissement : mysql_query() : Accès refusé pour l'utilisateur 'xxx'@'localhost'. Si l'accès à votre base de données est toujours restreint, vérifiez toujours les fichiers journaux pour obtenir des informations plus détaillées sur le problème.
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!