Maison >base de données >tutoriel mysql >Comment corriger l'erreur générale : le serveur MySQL 2006 a disparu lors d'opérations groupées ?

Comment corriger l'erreur générale : le serveur MySQL 2006 a disparu lors d'opérations groupées ?

Linda Hamilton
Linda Hamiltonoriginal
2024-10-30 22:20:30220parcourir

How to Fix the

Résolution du problème « Erreur générale : le serveur MySQL 2006 a disparu »

Lors de l'exécution d'opérations groupées, telles que l'insertion de centaines d'enregistrements dans une base de données MySQL, vous pouvez rencontrez l'erreur suivante :

[PDOException] SQLSTATE[HY000]: General error: 2006 MySQL server has gone away

Cette erreur survient généralement en raison d'un problème de délai d'attente où le serveur MySQL déconnecte votre connexion après une période d'inactivité définie. Pour résoudre ce problème, concentrez-vous sur le réglage de deux paramètres principaux :

1. wait_timeout

Le paramètre wait_timeout détermine la durée (en secondes) pendant laquelle MySQL attendra avant de mettre fin à une connexion inactive. Par défaut, cette valeur est définie sur une valeur relativement faible de 30 secondes sur les environnements d'hébergement partagé.

Pour augmenter le wait_timeout, émettez la requête suivante au début de votre opération :

SET session wait_timeout=28800;

Ceci La commande définit le wait_timeout sur 28 800 secondes, soit environ 8 heures.

2. interactive_timeout (Facultatif)

Dans certains cas, vous devrez peut-être également ajuster le paramètre interactive_timeout. Ce paramètre spécifie le nombre de secondes avant que MySQL ne mette fin à une connexion interactive.

Pour modifier interactive_timeout, exécutez la requête suivante après avoir ajusté wait_timeout :

SET session interactive_timeout=28800;

Vérification

Pour confirmer que les paramètres ont été modifiés avec succès, vous pouvez exécuter la requête suivante avant et après avoir apporté les modifications :

<code class="php">$results = $db->query("SHOW VARIABLES LIKE '%timeout%'", TRUE);</code>

Précautions

Bien que l'augmentation des paramètres de délai d'attente puisse résoudre le problème immédiat, il est important prendre en compte les éléments suivants :

  • Définir wait_timeout sur une valeur très élevée (par exemple, 8 heures) peut entraîner une attente excessive pour les connexions inactives.
  • Il est généralement recommandé de maintenir wait_timeout dans un délai plage raisonnable, telle que 300 secondes.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn