A partir de MySQL 3.23.40
vous n'obtenez
l'erreur Aborted connection
que si vous
démarrez mysqld
avec
--warnings
.
Si vous trouvez des erreurs comme celle qui suit dans vos logs d'erreurs :
010301 14:38:23 Aborted connection 854 to db: 'users' user: 'josh'
See Section 5.9.1, « Le log d'erreurs ».
Cela signifie qu'un problème est survenu :
Le programme client n'a pas appelé
mysql_close()
avant de quitter.
Le client a été inactif plus de
wait_timeout
ou
interactive_timeout
secondes sans aucune
requête. See Section 5.2.3, « Variables serveur système ».
L'exécution du programme client s'est terminée soudainement au milieu d'un transfert.
Lorsque ce qui précède arrive, la variable
Aborted_clients
est incrémentée.
La variable serveur Aborted_connects
est
incrémentée lorsque :
Un paquet de connexion ne contient pas la bonne information.
L'utilisateur n'avait pas les droits d'accès à la base de données.
L'utilisateur a utilisé un mot de passe erroné.
Il a fallu plus de connect_timeout
secondes pour obtenir un paquet de communication. See
Section 5.2.3, « Variables serveur système ».
Notez que ce qui précède peut indiquer que quelqu'un essaye de s'introduire dans votre base de données !
Autres raisons pour les problèmes de clients échoués / connexions interrompues :
L'utilisation du protocole Ethernet sous Linux, que le Duplex soit intégral (Full-Duplex) ou partiel (Half Duplex) avec Linux. La plupart des pilotes Ethernet de Linux ont ce bogue. Vous pouvez tester ce bogue en transférant un énorme fichier via FTP d'une machine à l'autre. Si le transfert est saccadé (succession de transfert-pause-transfert-pause) alors vous vivez le syndrôme du duplex de Linux. La seule solution est de changer le mode de Duplex sur les deux cartes réseau et Hub/Switch en duplex partiel ou duplex intégral et de faire des tests pour connaître la meilleure configuration.
Quelques problèmes avec la bibliothèque de threads qui causent des interruptions de lectures.
Mauvaise configuration TCP/IP.
Les câbles, concentrateurs ou commutateurs Ethernet défectueux. On peut le diagnostiquer aisément en remplacement le matériel.
max_allowed_packet
est trop petit ou les
requêtes ont besoin de plus de mémoire que celle que vous
avez alloué à mysqld
. See
Section A.2.9, « Erreur Packet too large
».
This is a translation of the MySQL Reference Manual that can be found at dev.mysql.com. The original Reference Manual is in English, and this translation is not necessarily as up to date as the English version.