Détails
L'hôte 'xxx.xx.xxx.xxx' ; n'est pas autorisé à se connecter à ce serveur MySQL.
Cela devrait être très simple, mais je n'arrive pas à le faire fonctionner.
J'essaie simplement de me connecter à distance à mon serveur MySQL.
Je me connecte en tant que
mysql -u root -h localhost -p
fonctionne bien, mais en essayant
mysql -u root -h 'any ip address here' -p
échoue avec l'erreur
ERROR 1130 (00000): Host ''xxx.xx.xxx.xxx'' is not allowed to connect to this MySQL server
Dans la table mysql.user
, il y a exactement la même entrée pour l'utilisateur 'root' ; avec l'hôte 'localhost' ; qu'une autre avec l'hôte '%' ;.
Je suis à bout de nerfs et je n'ai aucune idée de la marche à suivre. Toute idée est la bienvenue.
622
3
Peut-être une précaution de sécurité. Vous pouvez essayer d'ajouter un nouveau compte administrateur :
Bien que, comme Pascal et d'autres l'ont noté, ce n'est pas une bonne idée d'avoir un utilisateur avec ce type d'accès ouvert à n'importe quelle IP. Si vous avez besoin d'un utilisateur administratif, utilisez root, et laissez-le sur localhost. Pour toute autre action, spécifiez exactement les privilèges dont vous avez besoin et limitez l'accessibilité de l'utilisateur comme Pascal l'a suggéré ci-dessous.
Modifier :
Extrait de la FAQ MySQL :
Le message
*Host ''xxx.xx.xxx.xxx'' ; n'est pas autorisé à se connecter à ce serveur MySQL
est une réponse du serveur MySQL au client MySQL. Remarquez qu'il renvoie l'adresse IP et non le nom d'hôte.Si vous essayez de vous connecter avec
mysql -h -u -p
et qu'il renvoie ce message avec l'adresse IP, alors le serveur MySQL n'est pas en mesure de faire une recherche inversée sur le client. C'est essentiel car c'est ainsi que le client MySQL est relié aux subventions.Assurez-vous que vous pouvez faire un
nslookup
DU serveur MySQL. Si cela ne fonctionne pas, c'est qu'il n'y a pas d'entrée dans le serveur DNS. Sinon, vous pouvez mettre une entrée dans le fichier HOSTS du serveur MySQL (` `Si vous modifiez les tables de concession manuellement (en utilisant INSERT, UPDATE, etc.), vous devez exécuter une instruction
FLUSH PRIVILEGES
pour demander au serveur de recharger les tables d'attribution.PS : Je ne recommanderais pas de permettre à n'importe quel hôte de se connecter pour n'importe quel utilisateur (surtout pas l'utilisation de
root
). Si vous utilisez mysql pour une application client/serveur, préférez une adresse de sous-réseau. Si vous utilisez mysql avec un serveur web ou un serveur d'application, utilisez des IPs spécifiques.