मैं mysql के mysql-connector-python लाइब्रेरी का उपयोग करके लोकल नेटवर्क में अन्य डिवाइस के MariaDB डेटाबेस से कनेक्ट करने की कोशिश कर रहा हूं, लेकिन यह विफल हो गया, और यह सीधे बाहर निकल गया, बिना किसी त्रुटि संदेश के आउटपुट के।

समस्या का विवरण

सॉफ्टवेयर संस्करण:

  • MariaDB server 10.11.6

  • mysql-connector-python 9.2.0

  • MariaDB server, IP 192.168.1.60 है

  • क्लाइंट, IP 192.168.1.35 है

Python कोड इस प्रकार है:

import mysql.connector  
import logging  
  
# लॉगिंग को कॉन्फ़िगर करें
logging.basicConfig(level=logging.DEBUG, format='%(asctime)s - %(levelname)s - %(message)s')  
  
try:  
    logging.info("डेटाबेस से कनेक्ट हो रहा है...")
    connection = mysql.connector.connect(  
        host="192.168.1.60",  
        port=3306,  
        user="mysql",  
        password="xxx")  
    logging.info("कनेक्शन स्थापित हो गया।")
  
    # SQL क्वेरी निष्पादित करने के लिए एक कर्सर ऑब्जेक्ट बनाएं
    cursor = connection.cursor()  
  
    # सभी डेटाबेस प्राप्त करें
    logging.info("SHOW DATABASES क्वेरी निष्पादित हो रही है...")
    cursor.execute("SHOW DATABASES")  
  
    # सभी डेटाबेस और प्रत्येक डेटाबेस में तालिका नामों को प्रिंट करें
    for (database,) in cursor.fetchall():  
        logging.info(f"डेटाबेस: {database}")  
  
        # वर्तमान डेटाबेस पर स्विच करें
        cursor.execute(f"USE {database}")  
  
        # वर्तमान डेटाबेस में सभी तालिकाओं को प्राप्त करें और प्रिंट करें
        cursor.execute("SHOW TABLES")  
  
        for (table,) in cursor.fetchall():  
            logging.info(f"  टेबल: {table}")  
  
    # कर्सर और कनेक्शन बंद करें
    cursor.close()  
    connection.close()  
    logging.info("कनेक्शन बंद हो गया।")
  
except mysql.connector.Error as err:  
    logging.error(f"त्रुटि: {err}")
except Exception as e:  
    logging.error(f"अप्रत्याशित त्रुटि: {e}")

इस कोड को चलाने के बाद, यह सीधे बाहर निकल जाता है, बिना किसी त्रुटि संदेश के आउटपुट के।

मैंने MariaDB सर्वर के सेवा रिकॉर्ड की जाँच की और निम्नलिखित त्रुटि संदेश पाया।

mariadbd: [Warning] Aborted connection 48 to db: 'unconnected' user: 'unauthenticated' host: '192.168.1.35' (This connection closed normally without authentication)

समस्या को हल करने का प्रयास

क्योंकि MariaDB सर्वर कनेक्शन अनुरोध प्राप्त कर सकता है, इसलिए दोनों डिवाइस के फ़ायरवॉल कॉन्फ़िगरेशन सामान्य हैं।

मैंने लॉगिन उपयोगकर्ता की अनुमतियों की जाँच की, और पाया कि वे भी सामान्य हैं।

मैंने बहुत सारी जानकारी खोजी और विभिन्न तरीकों की कोशिश की। लेकिन किसी भी तरह से, मैं इस समस्या को हल नहीं कर सका।

अंत में, MariaDB सर्वर से कनेक्ट करने के लिए एक और पायथन लाइब्रेरी pymysql (संस्करण: 1.1.1) का उपयोग करने का प्रयास करें, कोड इस प्रकार है:

import pymysql  
  
# MariaDB सर्वर से कनेक्ट करें
conn = pymysql.connect(  
    host="192.168.1.60",  
    port=3306,  
    user="mysql",  
    password="xxx"  
)  
  
cursor = conn.cursor()  
cursor.execute("SELECT VERSION()")  
print("MariaDB version:", cursor.fetchone()[0])  
  
cursor.close()  
conn.close()

बिना किसी त्रुटि के, सफलतापूर्वक कनेक्ट हो गया और MariaDB का संस्करण प्रिंट किया।

लेकिन मुझे अभी भी नहीं पता कि पहले कनेक्ट क्यों नहीं हो सका।

इस वेबपेज के अन्य संस्करण

इस लेख के कई भाषाओं में संस्करण हैं।

यदि आप कोई टिप्पणी पोस्ट करना चाहते हैं, तो कृपया निम्नलिखित वेबपेज पर जाएँ:

ZH EN ZH-TW JA

ये वेबपेज केवल ब्राउज़िंग का समर्थन करते हैं, टिप्पणियों या संदेशों को पोस्ट नहीं कर सकते हैं, लेकिन अधिक भाषा विकल्प प्रदान करते हैं, और लोड होने में कम समय लगता है:

ZH EN ZH-TW JA RU KO CS ES AR FR PT DE TR IT NL SV DA FI PL UK HE RO HU EL HR TH HI BN ID SW VI NO

यह लेख AI द्वारा Chinese (Simplified) से Hindi में अनुवादित किया गया है।