আমি 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 সার্ভার সংযোগের অনুরোধ গ্রহণ করতে পারে, তাই বলা যায় যে দুটি ডিভাইসের ফায়ারওয়ালের কনফিগারেশন স্বাভাবিক আছে।

আমি লগইন করা ব্যবহারকারীর অনুমতি পরীক্ষা করেছি, এবং সেটিও স্বাভাবিক পেয়েছি।

আমি অনেক তথ্য খুঁজেছি, এবং বিভিন্ন পদ্ধতি চেষ্টা করেছি। কিন্তু কোনোভাবেই এই সমস্যার সমাধান করতে পারিনি।

অবশেষে, অন্য একটি পাইথন লাইব্রেরি pymysql (সংস্করণ: 1.1.1) ব্যবহার করে MariaDB সার্ভারের সাথে সংযোগ করার চেষ্টা করেছি, নিচের কোডটি ব্যবহার করে:

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 সংস্করণ:", 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 দ্বারা সরলীকৃত চীনা থেকে বাংলা ভাষায় অনুবাদ করা হয়েছে।