Maison >base de données >tutoriel mysql >Comment corriger les erreurs « Connexion perdue au serveur MySQL lors d'une requête » lors du traitement de grands ensembles de données ?

Comment corriger les erreurs « Connexion perdue au serveur MySQL lors d'une requête » lors du traitement de grands ensembles de données ?

Susan Sarandon
Susan Sarandonoriginal
2025-01-04 05:38:38889parcourir

How to Fix

Comment gérer l'erreur « Connexion perdue au serveur MySQL lors d'une requête »

Lorsque vous travaillez avec des ensembles de données extrêmement volumineux, il est courant de rencontrer l'erreur « Connexion perdue au serveur MySQL pendant la requête." Cette erreur se produit lors de l'itération des lignes de données, entraînant une perte de connexion et l'obscurcissement de la position de la dernière requête SQL exécutée.

Exemple de code amélioré

Pour résoudre ce problème, l'exemple de code suivant utilise le SSCursor de la bibliothèque MySQLdb, qui prend en charge la reconnexion automatique en cas d'échec de la requête :

import MySQLdb

class DB:
    conn = None

    def connect(self):
        self.conn = MySQLdb.connect(
            "hostname", "user", "*****", "some_table", cursorclass=MySQLdb.cursors.SSCursor
        )

    def query(self, sql):
        cursor = self.conn.cursor()
        cursor.execute(sql)
        return cursor

#
db = DB()
sql = "SELECT bla FROM foo"
data = db.query(sql)

for row in data:
    do_something(row)

Dépannage Conseils

Si l'erreur persiste, reportez-vous à la documentation MySQL sur cette erreur spécifique. Les causes possibles peuvent inclure :

  • Requêtes incorrectes ou surdimensionnées : Les requêtes trop volumineuses ou contenant des erreurs peuvent déclencher la fermeture de la connexion. L'augmentation de la variable max_allowed_packet du serveur et l'ajustement de la taille des paquets côté client pourraient résoudre ce problème.
  • Avertissements : Le démarrage de MySQL avec l'option --log-warnings=2 génère un fichier journal contenant des informations sur erreurs déconnectées. Cela peut fournir davantage d’informations sur la cause du problème.

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