Catégorie > High Tech

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

Posté par Mado, mise à jour le 09/12/2025 à 10:59:27

L'erreur SQLSTATE[HY000]: General error: 2006 MySQL server has gone away est une erreur courante dans MySQL (ou MariaDB). Elle signifie que la connexion entre votre application (souvent PHP avec PDO ou MySQLi) et le serveur MySQL a été interrompue de manière inattendue.

Causes principales
Cette erreur peut avoir plusieurs origines :
Paquet trop grand : Une requête ou un résultat dépasse la limite autorisée (max_allowed_packet trop petit, valeur par défaut souvent 4 Mo ou 64 Mo).
Timeout de connexion : La connexion reste inactive trop longtemps et le serveur la ferme (wait_timeout ou interactive_timeout trop bas, par défaut 28800 secondes ou 8 heures).
Requête trop longue : Une requête met trop de temps à s'exécuter (timeout côté serveur ou client).
Problèmes de connexion : Perte de connexion réseau, serveur MySQL redémarré, ou trop de connexions simultanées.
Import de gros fichiers : Lors d'un dump SQL volumineux ou d'uploads de fichiers (images, etc.).
Autres : Ressources insuffisantes (mémoire, disque plein), ou bugs dans certaines versions.

Solutions recommandées
La plupart du temps, modifier la configuration MySQL résout le problème. Éditez le fichier my.cnf ou my.ini (souvent dans /etc/mysql/my.cnf sur Linux ou sous Windows dans le dossier MySQL), sous la section [mysqld] :
ini

[mysqld]
max_allowed_packet = 64M # Ou plus, par exemple 128M ou 256M si vous gérez de gros paquets
wait_timeout = 28800 # Augmentez si timeout sur connexions inactives (ex. : 600 pour 10 min, ou plus)
interactive_timeout = 28800
net_read_timeout = 600
net_write_timeout = 600

Redémarrez ensuite le serveur MySQL :Sur Linux : sudo service mysql restart ou sudo systemctl restart mysql
Sur Windows : Via les services ou le gestionnaire.

Autres astuces :
Côté application PHP : Si vous utilisez PDO, activez la persistance des connexions ou reconnexion automatique.
Exemple :php

$pdo = new PDO('mysql:host=localhost;dbname=base', 'user', 'pass', [
PDO::ATTR_PERSISTENT => true,
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION
]);

Ou vérifiez la connexion avant une requête longue.
Pour les imports gros : Utilisez mysql --max_allowed_packet=256M en ligne de commande, ou divisez le fichier SQL.
Vérifiez les logs : Regardez les logs MySQL (/var/log/mysql/error.log) pour plus de détails sur la cause exacte.
Hébergement partagé : Si vous êtes chez un hébergeur (OVH, etc.), contactez-le pour augmenter ces valeurs, car vous n'avez pas toujours accès au my.cnf.



Ajouter une réponse

Votre message :

:

Votre prénom:

Votre email:

:



A voir aussi :

Les dernières discussions:



Qui est Réponse Rapide?

Réponse rapide est un site internet communautaire. Son objectif premier est de permettre à ses membres et visiteurs de poser leurs questions et d’avoir des réponses en si peu de temps.

Quelques avantages de réponse rapide :

Vous n’avez pas besoins d’être inscrit pour poser ou répondre aux questions.
Les réponses et les questions des visiteurs sont vérifiées avant leurs publications.
Parmi nos membres, des experts sont là pour répondre à vos questions.
Vous posez vos questions et vous recevez des réponses en si peu de temps.

Note :

En poursuivant votre navigation, vous acceptez l'utilisation de cookies. En savoir plus