Comment réparer la connexion MySQL perdue

Comment réparer la connexion MySQL perdue
Dans certains cas, lorsque vous travaillez avec les bases de données MySQL, vous pouvez rencontrer l'erreur «Error 2013: Lost Connection à MySQL Server pendant la requête». Bien que cela puisse être frustrant quand cela se produit, il y a une raison relativement simple pour laquelle cela se produit et comment vous pouvez le réparer.

Ce qui provoque une erreur de «connexion perdue à MySQL Server pendant la requête»?

Ce type d'erreur se produit lorsque la connexion entre un client et le serveur dépasse la valeur d'expiration spécifiée.

Par exemple, si vous avez une longue requête qui prend beaucoup de temps pour terminer l'exécution, MySQL laisse tomber la connexion au serveur.

Prenez par exemple, lors de l'exportation d'une grande base de données, en fonction de la méthode d'exportation et des données à exporter, il peut prendre beaucoup de temps à ce processus pour terminer. Pour éviter les problèmes sur le serveur, MySQL peut résilier cette connexion avant la fin du processus.

Une autre cause commune de ce type d'erreur est les opérations de jointure complexes.

MySQL Show Timeout Valeur

Comme mentionné, vous pouvez corriger ce type d'erreur en augmentant simplement les durées de délai d'expiration du côté serveur.

Les valeurs de délai de temps sont stockées dans les variables Wait_timeout et Interactive_timeout. Nous pouvons récupérer les valeurs de courant comme indiqué dans les requêtes suivantes:

mysql> montrent des variables globales comme «interactive_timeout»;

La sortie résultante est la suivante:

+---------------------+-------+
| Variable_name | Valeur |
+---------------------+-------+
| interactive_timeout | 28800 |
+---------------------+-------+
1 ligne en jeu (0.00 sec)

Le résultat donné montre la valeur par défaut de la variable interactive_timeout. Cette valeur définit la durée, en quelques secondes, que le serveur attend une activité lors d'une session active avant de la terminer.

Nous pouvons également récupérer la valeur de la variable Wait_timeout comme:

mysql> montrent des variables globales comme 'wait_timeout';

Tableau résultant:

+---------------+-------+
| Variable_name | Valeur |
+---------------+-------+
| wait_timeout | 28800 |
+---------------+-------+
1 ligne en jeu (0.01 SEC)

Cette variable définit la durée que le serveur MySQL attend une activité dans une session non interactive.

Correction de l'erreur de connexion MySQL Lost en mettant à jour les variables de délai

Pour corriger ce type d'erreur, nous pouvons mettre à jour les valeurs des deux variables discutées précédemment. Nous pouvons exécuter la requête comme indiqué dans ce qui suit:

mysql> set @@ global.interactive_timeout = 43200;
Requête ok, 0 lignes affectées (0.00 sec)

La commande précédente doit mettre à jour la valeur de la variable interactive_timeout à 43200 secondes.

Pour mettre à jour le paramètre Wait_timeout, exécutez la commande suivante:

mysql> set @@ global.wait_timeout = 43200;
Requête ok, 0 lignes affectées (0.00 sec)

Vous avez terminé. Vous pouvez essayer de réécrire votre requête chronométrée.

Conclusion

Dans cet article, nous avons discuté de la cause d'une erreur de connexion perdue lorsque vous travailliez avec MySQL et les étapes que vous pouvez prendre pour les réparer. Cependant, soyez attentif à vos requêtes ou segmentez-les en blocs efficaces.

Merci d'avoir lu et de codage heureux!