"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > Python में MySQL क्लाइंट्स को MySQLdb और MySQL कनेक्टर/पायथन के साथ दोबारा कैसे कनेक्ट करें?

Python में MySQL क्लाइंट्स को MySQLdb और MySQL कनेक्टर/पायथन के साथ दोबारा कैसे कनेक्ट करें?

2024-11-15 को प्रकाशित
ब्राउज़ करें:822

How to Reconnect MySQL Clients in Python with MySQLdb and MySQL Connector/Python?

MySQL ग्राहकों को MySQLdb के साथ पुनः कनेक्ट करना

डेटाबेस कनेक्टिविटी के दायरे में, निर्बाध डेटा एक्सेस के लिए लगातार कनेक्शन बनाए रखना महत्वपूर्ण है। MySQLdb, MySQL डेटाबेस के साथ इंटरफेसिंग के लिए एक लोकप्रिय पायथन लाइब्रेरी, कनेक्शन विफलताओं के मामले में ग्राहकों को स्वचालित रूप से पुन: कनेक्ट करने का एक तरीका प्रदान करता है।

पिछले संस्करणों में ऑटो-रीकनेक्ट सक्षम करना

MySQLdb के पुराने संस्करणों में, ऑटो-रीकनेक्ट कार्यक्षमता को mysql_options() फ़ंक्शन के माध्यम से सक्रिय किया जा सकता है, जैसा कि दिखाया गया है नीचे:

my_bool reconnect = 1
mysql_options(&mysql, MYSQL_OPT_RECONNECT, &reconnect)

हालांकि, MySQL कनेक्टर/पायथन के आगमन के साथ, अंतर्निहित कार्यान्वयन बदल गया है, और यह दृष्टिकोण अब लागू नहीं है।

के लिए समाधान MySQL कनेक्टर/पायथन

प्राप्त करना MySQL कनेक्टर/पायथन में ऑटो-रीकनेक्शन, कर्सर ऑब्जेक्ट के व्यवहार को अनुकूलित करना आवश्यक है। निम्नलिखित कोड स्निपेट इस दृष्टिकोण को प्रदर्शित करता है:

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

स्पष्टीकरण

यह कोड एक कस्टम क्वेरी() विधि को परिभाषित करता है जो कर्सर.execute() विधि को लपेटता है। यदि कोई कनेक्शन त्रुटि होती है (या तो AttributeError या MySQLdb.OperationalError), तो query() विधि डेटाबेस से फिर से जुड़ने का प्रयास करेगी और फिर क्वेरी को फिर से निष्पादित करेगी।

इस ऑटो-रीकनेक्शन तंत्र को कार्यान्वित करके कर्सर ऑब्जेक्ट, आप यह सुनिश्चित कर सकते हैं कि MySQL कनेक्शन रुक-रुक कर खो जाने पर भी आपकी पायथन स्क्रिप्ट काम करना जारी रख सकती है। यह दृष्टिकोण डेटाबेस कनेक्टिविटी बनाए रखने का अधिक मजबूत और विश्वसनीय साधन प्रदान करता है।

नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3