


Comment activer la reconnexion automatique des clients dans MySQLdb ?
MySQLdb : Activation de la reconnexion automatique du client
Dans MySQLdb, établir la reconnexion automatique de la connexion n'est pas une tâche simple par rapport à l'extension MySQL de PHP. Cet article aborde ce problème et propose une solution efficace.
Contexte
Le maintien de connexions actives avec MySQL est crucial dans les applications Web. Des problèmes de réseau, des délais d'attente ou des redémarrages de bases de données peuvent perturber ces connexions, entraînant des erreurs. Pour gérer de telles situations, les clients de base de données doivent être équipés de capacités de reconnexion automatique.
Solution MySQLdb
MySQLdb ne fournit pas d'option directe de reconnexion automatique comme MYSQL_OPT_RECONNECT de MySQL. . Cependant, une solution de contournement consiste à encapsuler la méthode curseur.execute(), qui déclenche généralement des erreurs de connexion lorsque MySQL est inaccessible.
import MySQLdb class DB: conn = None def connect(self): self.conn = MySQLdb.connect() def query(self, sql): try: cursor = self.conn.cursor() cursor.execute(sql) except (AttributeError, MySQLdb.OperationalError): self.connect() cursor = self.conn.cursor() cursor.execute(sql) return cursor db = DB() sql = "SELECT * FROM foo" cur = db.query(sql) # wait a long time for the MySQL connection to timeout cur = db.query(sql) # still works
Explication
Cette méthode crée un Classe DB avec une méthode connect() pour établir la connexion initiale. La méthode query() tente d'exécuter une requête à l'aide d'un curseur. Si une erreur de connexion se produit (AttributeError ou MySQLdb.OperationalError), il se reconnecte automatiquement en appelant connect() puis retente la requête avec un nouveau curseur. Cette approche garantit que votre application peut gérer les problèmes de connexion temporaires et maintenir un accès transparent à la base de données.
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!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

Réduisez l'utilisation de la mémoire MySQL dans Docker

Comment modifier une table dans MySQL en utilisant l'instruction ALTER TABLE?

Comment résoudre le problème de MySQL ne peut pas ouvrir la bibliothèque partagée

Exécutez MySQL dans Linux (avec / sans conteneur Podman avec phpmyadmin)

Exécuter plusieurs versions MySQL sur macOS: un guide étape par étape

Comment configurer le cryptage SSL / TLS pour les connexions MySQL?

Quels sont les outils de GUI MySQL populaires (par exemple, MySQL Workbench, PhpMyAdmin)?
