J'ai développé une application en VB6 et j'utilise un serveur de base de données MySQL en ligne pour stocker les données de mon application.
La première fois que j'essaie de me connecter à mon serveur de base de données réussit, mais après avoir fermé mon application et l'avoir redémarrée, j'obtiens:
Impossible de se connecter au serveur MySQL (10060) "
Après un certain temps (environ 30 minutes), je peux à nouveau me connecter à la base de données.
J'ai demandé aux techniciens qui fournissent le service de base de données MySQL en ligne et ils m'ont donné ces trois raisons:
Comment puis-je résoudre les deux premières raisons ou déterminer qu'elles sont la cause du problème? Ou pourrait-il y avoir un autre problème qui n'y figure pas?
vous devez vous assurer qu'il y a:
1) utilisateur créé avec accès à distance, par exemple utilisateur@'x.x.x.x '
2) il y a une connexion entre les deux machines (elles peuvent se pinguer par exemple ou accéder les unes aux autres par une autre méthode) le port est ouvert entre les deux machines
3) dans my.ini/my.cnf
il y a un paramètre de connexion bloquant comme: bind-address=a.a.a.a
ou skip-networking
4) le service est opérationnel lorsque vous essayez de vous connecter à partir de l'autre machine
J'ai passé une journée entière à me cogner la tête en essayant de comprendre cela et il s'est avéré que le réseau Windows a été défini comme Public au lieu de Privé qui bloque toutes les connexions entrantes. J'espère que cela aide quelqu'un.
Il s'agit très probablement d'un problème côté réseau et le fournisseur de services de base de données doit créer une nouvelle règle dans le pare-feu (iptables). Nous avons juste besoin de confirmer quelques éléments auprès du fournisseur. Comme le comportement n'est pas stable (à l'occasion, vous pouvez vous connecter, et parfois non). Ce n'est donc pas un problème de privilège utilisateur (GRANT ALL ON ...)
Fournissez la sortie du port telnet (ip):
J'ai eu le même problème la dernière fois et l'iptables est le coupable à ce moment-là.
Lorsque le serveur a été redémarré, la règle iptables passe à la valeur par défaut et n'a pas appliqué le filtre pour certains ports.
Vérifiez les iptables
Vérifiez d'abord si vous avez accordé les privilèges appropriés à l'utilisateur sur votre hôte actuel via lequel vous essayez de vous connecter au serveur MySQL.
select * from mysql.user where Host="Host_name"\G;
grant all on *.* to 'user'@'Host_name' identified by 'Password';
J'espère que ça t'aide.