Maison >base de données >tutoriel mysql >Pourquoi est-ce que je reçois une erreur « Accès MySQL refusé » lors de la connexion à distance ?

Pourquoi est-ce que je reçois une erreur « Accès MySQL refusé » lors de la connexion à distance ?

Patricia Arquette
Patricia Arquetteoriginal
2024-12-10 17:43:18362parcourir

Why Am I Getting a

Erreur de connexion MySQL à distance : résolution du problème d'accès refusé

De nombreux utilisateurs rencontrent l'erreur frustrante « ERREUR 1045 (28000) : accès refusé pour l'utilisateur " lorsque vous tentez d'accéder à MySQL à distance. Cette erreur empêche les machines distantes de se connecter à une base de données en raison de restrictions d'autorisation. Pour approfondir ce problème, examinons un scénario spécifique.

Dans ce cas, l'utilisateur dispose d'un serveur MySQL exécuté sur une machine locale (192.168.233.142) et éprouve des difficultés à établir une connexion à distance à partir d'une autre machine. (192.168.233.163). Il est confirmé que le port MySQL est ouvert sur la machine locale, mais les tentatives de connexion à distance rencontrent l'erreur susmentionnée.

Le problème principal réside dans la table des utilisateurs MySQL, qui ne contient que deux entrées pour les utilisateurs root : une permettant l'accès local à partir de l'hôte local et un accordant l'accès à partir de n'importe quelle adresse IP (%). Pour résoudre ce problème, l'utilisateur doit ajouter une entrée IP spécifique pour la machine distante à la table mysql.user. Cela accorde une autorisation explicite pour cette machine particulière.

Cependant, même après avoir ajouté l'entrée IP et redémarré la machine, l'erreur persiste. La solution consiste à exécuter une instruction GRANT en tant que root, en spécifiant l'adresse IP, le nom d'utilisateur et le mot de passe de l'utilisateur distant prévu. Cela accorde les privilèges requis et garantit que la machine distante dispose des autorisations nécessaires pour accéder à la base de données.

Accorder des privilèges à l'aide de "GRANT ALL PRIVILEGES ON . TO 'USERNAME'@'IP' L'instruction IDENTIFIED BY 'PASSWORD' with grant option" permet à l'utilisateur distant d'effectuer toutes les opérations de base de données et de transmettre ces privilèges à d'autres utilisateurs. L'exécution de l'instruction "FLUSH PRIVILEGES" ou le redémarrage du serveur MySQL finalise le processus et active l'accès à distance.

En suivant ces étapes et en ajustant la table utilisateur et les privilèges en conséquence, l'utilisateur devrait être en mesure d'établir avec succès des connexions à distance à la base de données MySQL.

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:
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