Mon application doit effectuer des connexions assez fréquentes à une base de données mysql sur une autre machine. Cependant, je reçois fréquemment des erreurs de connexion; Je peux généralement me connecter, mais après de nombreuses tentatives. Le message d'erreur que je reçois est:
Mysql.mysql(): Couldn't connect to SQL-server: Lost connection to MySQL server at 'reading authorization packet', system error: 2
J'ai lu les informations ici: http://dev.mysql.com/doc/refman/5.0/en/error-lost-connection.html ainsi que les commentaires du bug http://bugs.mysql.com/bug .php? id = 28359 .
Il existe un certain nombre de connexions interrompues, comme vous pouvez le voir:
mysql> AFFICHER LE STATUT MONDIAL COMME 'Aborted_connects'; + ------------------ + ------- + | Nom_variable | Valeur | + ------------------ + ------- + | Aborted_connects | 2540 | + ------------------ + ------- +
J'ai augmenté le délai d'attente de 5 à 15 s:
mysql> afficher des variables comme 'connect_timeout'; + ----------------- + ------- + | Nom_variable | Valeur | + ----------------- + ------- + | connect_timeout | 15 | + ----------------- + ------- +
mais cela n'a pas aidé. Des suggestions pour déboguer cela? Cela rend l'interaction avec la base de données horriblement lente quand elle doit en moyenne essayer de se connecter 5 fois avant de fonctionner.
Je n'ai pas encore essayé de garder la connexion ouverte pendant toute la durée de vie de l'application, serait-ce mieux? Comment empêcher la fermeture de la connexion?
Si cela aide l'ordinateur avec les problèmes, c'est Windows 7 32 bits, alors que le serveur mysql est sous Debian Linux.
la source
Réponses:
En examinant tous les détails des bogues et les rapports, je pense qu'il y a un problème côté réseau ou client ici. Quelque chose altère ou ajoute trop de latence aux données mysql.
Sur un réseau clair, effectuez une trace Wireshark et vérifiez à quoi ressemble la conversation. Assurez-vous qu'aucune mise en forme du trafic n'est en cours. Cela ne ressemble qu'à un problème 64 bits, alors vérifiez une version 32 bits juste pour vous assurer qu'il s'agit du même problème. Cochez une case Windows XP - M $ a fait des trucs géniaux sur la pile réseau de Vista, ce qui lui a fait perdre du temps! Nous n'avons pas de problèmes de réseautage avec les machines Vista et Win7!
Si vous gérez une trace Wirehark, veuillez coller et mettre le lien comme nous aimerions tous avoir un look je pense.
la source
En fin de compte, cela s'est avéré être dû à un problème de réseau général sur la machine. La solution a été trouvée dans: Problèmes de performances réseau sous Windows 7
la source