Connexion au Serveur Distant MySQL
Je suis d'essayer de se connecter à un serveur distant, que j'appellerai de la machine A. j'ai créé un utilisateur en suivant les instructions ici
CREATE USER 'monty'@'localhost' IDENTIFIED BY 'some_pass';
GRANT ALL PRIVILEGES ON *.* TO 'monty'@'localhost'
WITH GRANT OPTION;
CREATE USER 'monty'@'%' IDENTIFIED BY 'some_pass';
GRANT ALL PRIVILEGES ON *.* TO 'monty'@'%'
WITH GRANT OPTION;
Sur Une machine, je peux exécuter la commande
mysql -u monty -h website.com -p
Cela se connecte à sql sans problème. Toutefois, lorsque vous tentez de le faire à partir d'une machine B, je reçois l'erreur:
ERREUR de 2003 (HY000): can't connect to MySQL server on 'website.com' (113)
J'ai aussi commenté la ligne suivante:
# bind-address = 127.0.0.1
dans le /etc/mysql/my.cnf de fichier. Toujours pas de chance connexion à partir d'une connexion à distance. De toute évidence, les choses que je pourrais être absent? Tous les commentaires, comme toujours, est très apprécié.
- Le serveur est en écoute sur le port 3306? Vous pouvez le vérifier en faisant un
netstat -ln
. Voir si 3306 est dans la liste. Si c'est le cas, vérifiez les IP, c'est à l'écoute sur. Si c'est non, alors vous savez le problème est qu'il n'est pas à l'écoute à tous les ou sur un port différent. - Après l'exécution de la commande netstat -ln, le port 3306 est répertorié comme : tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN tous les commentaires sur ce que cela signifie?
- Cela signifie qu'il est à l'écoute sur toutes les interfaces réseau. En supposant que
website.com
pointe vers une adresse IP qui correspond à ce serveur, vous ne devriez pas avoir de problèmes. Assurez-vous de rincer les privilèges, aussi essayez de vérifier le mysql journal des erreurs pour toutes les autres notes de ce qui pourrait être mauvais.
Vous devez vous connecter pour publier un commentaire.
Je pense que c'est la SUBVENTION qui doit être réparé.
Peut-être besoin d'être
Vous allez vouloir s'assurer que les choses sont bien sûr.
Il est généralement préférable d'essayer de ne pas permettre à l'extérieur de mysql se connecte qui ne sont pas de localhost.
GRANT ALL PRIVILEGES ON *.* TO 'monty'@'%'
permettra une connexion à partir de n'importe oùIl ressemble à la 'website.com l'adresse ne peut pas être résolu à partir de la machine B. s'il vous Plaît essayez de vous connecter au serveur MySQL en utilisant l'adresse IP de la machine, c'est à dire:
Si cela ne fonctionne pas, assurez-vous que vous avez connecté l'adresse IP de la machine, Un à le nom de "website.com" correctement.
Mon problème était que le pare-feu bloque la connexion.
J'ai été en utilisant CentOS 7 et a été d'obtenir cette erreur:
Alors, j'ai installé telnet pour essayer et obtenu ceci:
et comme d'autres l'ont noté, l'erreur 113 est "No route to host" qui n'est pas une config MySQL question.
Je pouvais avoir juste ouvert 3306 pour le monde ou juste l'IP, j'ai été la connexion, mais au lieu de cela, j'ai décidé de créer une nouvelle zone car c'était pour mon hôte ESX interne "hostonly" du réseau.
Sur l'ordinateur hôte exécutant MySQL (MariaDB), j'ai couru ces pare-feu commandes:
Une fois que ce fut fait, je pourrais connecter sur le client:
mysql -usomeuser -h192.168.194.4 -p somedb
Entrez le mot de passe:
Et la vie était bonne