web-dev-qa-db-fra.com

Erreur MySQL 2006 (HY000) à la ligne 406: le serveur MySQL a disparu

J'ai un vidage de MYSQL d'une base de données que j'essaye de déplacer à un nouveau serveur de base de données. Lorsque j'essaie d'importer mon dump SQL, le message d'erreur suivant s'affiche:

MySQL Error 2006 (HY000) at line 406: MySQL server has gone away

J'ai googlé le problème et la plupart des gens l'ont corrigé en modifiant la valeur de wait_timeout. Cependant, ma valeur actuelle est définie sur 28800 (8 heures) et l'erreur apparaît dans moins de 8 secondes lorsque j'exécute l'importation.

J'ai également essayé de définir la valeur de max_allowed_packet sur 1073741824 mais cela n'a pas résolu le problème.

En regardant à travers le dump mysql, il y a pas mal de colonnes blob dans le dump, mais la taille totale du fichier n’est que de 6 Mo.

Quelqu'un at-il des idées sur ce qui pourrait être le problème?

19
David

L'ajout de cette réponse au profit des futurs chercheurs, car cela explique pourquoi l'augmentation de la taille du paquet a résolu le problème:

La situation est la suivante: si un client envoie une instruction SQL plus longue que le paramètre server max_allowed_packet, le serveur déconnectera simplement le client. La requête suivante de la même instance client trouvera que le ‘serveur MySQL est parti '. 

... Mais il serait bien sûr préférable d’avoir l’erreur «Une plus grande quantité de paquets» [Erreur: 2020 (CR_NET_PACKET_TOO_LARGE)] renvoyée si tel est le problème.

Extrait de et merci pour le blog de peter_laursen

Sur OSX 10.7 (Lion), j'ai créé un fichier, /etc/my.cnf avec le contenu suivant:

[mysqld]
max_allowed_packet = 12000000

Et puis arrêté le serveur mysql:

/usr/local/bin/mysql.server stop

Quand il a redémarré automatiquement, j'ai pu exécuter mes insertions.

47
Pauli Price

L'augmentation de max_allowed_packet à 12 Mo (12000000) a résolu le problème lorsque j'essayais d'importer un fichier de 130 Mo.

Modifiez le fichier ini ou sous Options File/Networking dans MySQL Workbench (redémarrage de MySQL requis).

Si l'erreur persiste, essayez d'augmenter encore (100 Mo). Rappelez-vous simplement de le diminuer lorsque vous avez terminé.

6
Sire

1) Modification dans le fichier de configuration MySql: # /etc/mysql/my.cnf

#section 
#
[mysqld]
#
key_buffer              = 32M
max_allowed_packet      = 32M
thread_stack            = 512K
thread_cache_size       = 64
#

2) redémarrage du démon MySql

/etc/init.d/mysql restart 

Devrait résoudre vos problèmes.

0
Amit Vujic