Comme indiqué ici :
Les deux raisons (et correctifs) les plus courantes pour lesquelles le serveur MySQL a disparu (erreur 2006) sont :
Le serveur a expiré et a fermé la connexion. Comment réparer :
vérifiez que la variable wait_timeout dans le fichier de configuration my.cnf de votre mysqld est suffisamment grande. Sur Debian :
sudo nano /etc/mysql/my.cnf
, définissezwait_timeout = 600
secondes (vous ne pouvez pas modifier/diminuer cette valeur lorsque l'erreur 2006 a disparu), puissudo /etc/init.d/mysql restart
. Je n'ai pas vérifié, mais la valeur par défaut forwait_timeout peut être d'environ 28800 secondes (8 heures).Le serveur a abandonné un paquet incorrect ou trop volumineux. Si mysqld reçoit un paquet trop volumineux ou incorrect, il suppose que quelque chose ne va pas avec le client et ferme la connexion. Vous pouvez augmenter la taille maximale des paquets en augmentant la valeur de max_allowed_packet dans le fichier my.cnf. Sur Debian :
sudo nano /etc/mysql/my.cnf
, définissezmax_allowed_packet = 64M
(vous ne pouvez pas modifier/diminuer cette valeur lorsque l'erreur 2006 a disparu), puissudo /etc/init.d/mysql restart
.
Modifier :
Notez que les fichiers d'options MySQL n'ont pas leurs commandes déjà disponibles sous forme de commentaires (comme dans php.ini par exemple). Vous devez donc saisir tout changement/ajustement dans my.cnf
ou my.ini
et placez-les dans mysql/data
répertoire ou dans l'un des autres chemins, sous le groupe d'options approprié tel que [client]
, [myslqd]
, etc. Par exemple :
[mysqld]
wait_timeout = 600
max_allowed_packet = 64M
Redémarrez ensuite le serveur. Pour obtenir leurs valeurs, tapez dans le client mysql :
> select @@wait_timeout;
> select @@max_allowed_packet;