Capable de ping serveur distant, mais incapable de se connecter
-
14-11-2019 - |
Question
Je suis en mesure de cingler le serveur distant auquel j'essaie de me connecter avec succès. Cependant, lors de l'exécution de la commande mysql:
mysql -u monty -h website.com -p
Je reçois l'erreur suivante:
ERROR 2003 (HY000): Can't connect to MySQL server on 'website.com' (111)
J'ai suivi les instructions trouvées ici qui montrent comment créer un utilisateur avec les privilèges nécessaires:
mysql> CREATE USER 'monty'@'localhost' IDENTIFIED BY 'some_pass';
mysql> GRANT ALL PRIVILEGES ON *.* TO 'monty'@'localhost'
-> WITH GRANT OPTION;
mysql> CREATE USER 'monty'@'%' IDENTIFIED BY 'some_pass';
mysql> GRANT ALL PRIVILEGES ON *.* TO 'monty'@'%'
-> WITH GRANT OPTION;
J'ai également commenté la ligne suivante dans /etc/mysql/my.cnf
# bind-address = 127.0.0.1
Même ainsi, je ne suis toujours pas en mesure de me connecter à distance. Y a-t-il quelque chose qui me manque ici? Merci encore à tous.
La solution
Erreur 111
est Connection refused
:
$ perror 111
111: Connection refused
Il y a quelques façons courantes que cela se produit:
- Le système serveur, le système client ou un routeur au milieu est configuré pour administrer
REJECT
ces paquets. Les paquets TCP sont gérés différemment des paquets ICMP, donc être capable deping
n'implique pas nécessairement la capacité d'acheter un flux TCP aléatoire. Demandez aux administrateurs sur les systèmes de vérifierufw
ouiptables
pour les données de pare-feu. - Le système serveur exécute un Contrôle d'accès obligatoire outil tel que Apparmor, Selinux, Tomoyo, ou CLAQUE qui est configuré pour interdire les paquets. Ces systèmes varient dans la façon dont les erreurs sont signalées, mais vérifiez
/var/log/audit/audit.log
etdmesg(1)
sortie pourreject
,denied
,AVC
, etc. - Vous avez peut-être supprimé un seul
bind-address
configuration. Essayez d'ajouter un explicitebind-address=0.0.0.0
(Lien Google Cache; je ne peux pas contacterdev.mysql.com
pour une raison quelconque) au fichier de configuration pour forcer la liaison à toutes les adresses. Vérifiernetstat -anp | grep -i mysql
Pour voir quels ports, le cas échéant, il écoute.
Autres conseils
Ce n'est pas un problème d'autorisation. S'il s'agissait d'un problème d'autorisation, vous obtiendrez une erreur différente.
C'est un problème de connexion.
Assurez-vous que la ligne skip-networking
La ligne est commentée ou supprimée de votre fichier de configuration.
Assurer que le port
La ligne est configurée sur le port approprié (la valeur par défaut est 3306).
Si vous n'êtes toujours pas en mesure de vous connecter, c'est probablement un problème de pare-feu / FAI.
Le ping n'est pas vraiment un bon test car il ne teste que si le serveur ICMP est en place. L'utilisation de Telnet pour se connecter au port spécifique serait un meilleur test:
> telnet website.com 3306
Il y a beaucoup d'endroits que vous pouvez mettre un my.cnf
Fichier, recherchez donc le fichier pour s'assurer qu'un autre fichier n'est pas en vigueur.
Cela combiné avec la réponse de Sarnold devrait vous mettre sur la bonne voie.