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 donné des valeurs maximales à l'ensemble du système MySQL et des variables globales comme connection_timeout , wait_timeout etc.
- J'ai accordé toutes les autorisations à mon utilisateur MySQL.
- Le pare-feu de mon ordinateur est désactivé.
- Toutes les connexions sont correctement fermées à la fermeture de l'application.
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:
- La machine locale à partir de laquelle vous essayez de vous connecter n'est pas sur la liste blanche sur le serveur.
- Le nombre maximal de connexions pour l'utilisateur a été dépassé.
- Le serveur MySQL était en panne à l'époque (bien qu'ils aient dit que leur serveur n'était pas en panne).
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?
mysql
connectivity
Ashok Gujjar
la source
la source
Réponses:
vous devez vous assurer qu'il y a:
1) utilisateur créé avec accès à distance, par exemple utilisateur @ 'xxxx'
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)
my.ini/my.cnf
il y a un paramètre de connexion bloquant comme:bind-address=a.a.a.a
ouskip-networking
4) le service est opérationnel lorsque vous essayez de vous connecter à partir de l'autre machine
la source
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 ...)
la source
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
la source
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;
J'espère que ça t'aide.
la source
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é, ce qui bloque toutes les connexions entrantes. J'espère que cela aide quelqu'un.
la source
certains hébergeurs bloquent par défaut l'accès à distance à ses serveurs MySql pour des raisons de sécurité. Si vous devez débloquer le service d'accès à distance, dites-leur de débloquer ce service.
Sinon, testez votre application localement, en tant qu'hôte local et lorsque cela fonctionne correctement, modifiez le nom d'hôte, etc. des paramètres de base de données dans votre application et téléchargez-les sur votre serveur d'hébergement Web, cela fonctionne très bien !!!.
Faites attention, que votre conception de base de données vérifie avec votre conception de base de données locale, c'est très important !!!
J'espère que ça t'aide.
la source
Deux choses à ajouter pour les utilisateurs de mariadb:
1) le my.cnf est aussi pour nous => là j'ai trouvé la
bind-address = 127.0.0.1
ligne2) vous devez redémarrer le service après avoir modifié le fichier my.cnf
J'espère que cela t'aides
la source