login annulée (Avez-vous une erreur en lisant des packages de communication)

La mysql error.log montre

[Warning] Aborted connection 320935 to db: '...' user: '...' host: '...' (Got an error reading communication packets) 

Alors que le côté client obtient:

 Lost connection to MySQL server at 'reading initial communication packet', system error: 111 Lost connection to MySQL server at 'reading authorization packet', system error: 0 and after a while: Host '...' is blocked because of many connection errors; unblock with 'mysqladmin flush-hosts' 

J'ai lu le manuel mysql à propos de cela, et beaucoup d'autres threads. J'ai donc changé certaines valeurs dans my.cnf

 max_allowed_packet = 512M connect_timeout = 60 net_read_timeout = 120 innodb_buffer_pool_size = 5G 

J'ai regardé le journal de requête d'une connection brisée:

 22400 Connect user@host on dbname 22400 Query SELECT @@sql_mode 22400 Query SET SESSION sql_mode='' 22400 Query SET NAMES utf8 22400 Init DB dbname 22400 Init DB dbname 

Statut du tableau vérifié. bind-address est l'IP du server mais je dois pouvoir me connecter depuis l'extérieur.

 Aborted_connects is 196 

3 Solutions collect form web for “login annulée (Avez-vous une erreur en lisant des packages de communication)”

Basé sur datatables limitées, je me request si vous avez un pare-feu entre le client et le server MySQL (peut-être sur les hôtes directement), ce qui permet 3306 au server MySQL, mais bloque les packages de réponse à la requête SYN initiale.

Vous voudrez peut-être effectuer une vidange de packages des deux côtés pour déterminer ce qui se passe sur le côté TCP et / ou vérifier les pare-feu qui existent entre les deux côtés.

Je soupçonne que ce n'est pas un problème mysql en tant que tel.

Vérifiez que la couche de transport est correcte. Pouvez-vous get une connection tcp en utilisant telnet [db_server] 3306 ?

Votre client et votre server sont-ils d'accord pour savoir si la connection doit être cryptée SSL?

Je ne peux pas penser à de nombreuses situations où je voudrais exécuter une connection mysql sur l'Internet public, ce que je soupçonne, c'est ce que vous entendez par «pouvoir se connecter depuis l'extérieur». Si elle n'est pas chiffrée, il s'agit d'un énorme risque pour la security, et les frais généraux de configuration de SSL pour chaque connection sont trop élevés pour la plupart des utilisations. Vous voudrez peut-être regarder un tunnel chiffré persistant de quelque sorte.

La connection annulée est considérée comme une erreur de connection dans MySQL qui peut ne pas être connectée au journal des erreurs MySQL. Voir les connections TCP abandonnées qui ne sont pas enregistrées comme des erreurs, mais entraînent un hôte bloqué .

  • Comment laisser PHP se connecter à la database en utilisant UNIX socket (Joomla)
  • Comment décharger efficacement une énorme base de données MySQL?
  • Un moyen optimal de réaliser des sauvegardes MySQL pour des bases de données assez grandes (MyISAM / InnoDB)
  • Ubuntu 12.04 VPS ne démarre pas avec mysql dans nsswitch.conf
  • apt-get échoue avec les dependencies non remplies
  • Comment vérifier le port sur lequel mysql fonctionne
  • bande passante minimale requirejse pour le server de database distant
  • un autre ordinateur du réseau ne peut pas se connecter à la database mysql
  • MySQLdb sur Windows
  • Mysqld fonctionne toujours avec 90% de processeur
  • Création d'une instance de database locale à partir de l'instantané RDS
  • Les astuces du serveur de linux et windows, tels que ubuntu, centos, apache, nginx, debian et des sujets de rĂ©seau.