mysql-connector-python kütüphanesini kullanarak mysql’i kullanarak, yerel ağdaki diğer cihazların MariaDB veritabanına bağlanmaya çalıştım, ancak başarısız oldum ve doğrudan çıktı, herhangi bir hata bilgisi vermedi.

Sorun Açıklaması

Yazılım sürümü:

  • MariaDB server 10.11.6

  • mysql-connector-python 9.2.0

  • MariaDB server, IP 192.168.1.60

  • İstemci, IP 192.168.1.35

Python kodu aşağıdaki gibidir:

import mysql.connector  
import logging  
  
# 日志记录配置  
logging.basicConfig(level=logging.DEBUG, format='%(asctime)s - %(levelname)s - %(message)s')  
  
try:  
    logging.info("Veritabanına bağlanılıyor...")  
    connection = mysql.connector.connect(  
        host="192.168.1.60",  
        port=3306,  
        user="mysql",  
        password="xxx")  
    logging.info("Bağlantı kuruldu.")  
  
    # SQL sorgularını yürütmek için bir imleç nesnesi oluşturun  
    cursor = connection.cursor()  
  
    # Tüm veritabanlarını alın  
    logging.info("SHOW DATABASES sorgusu yürütülüyor...")  
    cursor.execute("SHOW DATABASES")  
  
    # Tüm veritabanlarını ve her veritabanındaki tablo adlarını yazdırın  
    for (database,) in cursor.fetchall():  
        logging.info(f"Veritabanı: {database}")  
  
        # Mevcut veritabanına geç  
        cursor.execute(f"USE {database}")  
  
        # Mevcut veritabanındaki tüm tabloları alın ve yazdırın  
        cursor.execute("SHOW TABLES")  
  
        for (table,) in cursor.fetchall():  
            logging.info(f"  Tablo: {table}")  
  
    # İmleci ve bağlantıyı kapat  
    cursor.close()  
    connection.close()  
    logging.info("Bağlantı kapatıldı.")  
  
except mysql.connector.Error as err:  
    logging.error(f"Hata: {err}")  
except Exception as e:  
    logging.error(f"Beklenmeyen hata: {e}")

Bu kodu çalıştırdıktan sonra, doğrudan çıkıyor ve herhangi bir hata bilgisi vermiyor.

MariaDB sunucu tarafındaki hizmet kayıtlarını kontrol ettim ve aşağıdaki hata bilgilerini buldum.

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

Sorunu Çözmeye Çalışmak

MariaDB sunucu tarafı bağlantı isteğini alabildiğinden, iki cihazın güvenlik duvarı yapılandırmasının normal olduğunu söyleyebiliriz.

Giriş yapan kullanıcının izinlerini kontrol ettim ve bunların da normal olduğunu gördüm.

Birçok kaynak araştırdım ve çeşitli yöntemler denedim. Ancak ne olursa olsun, bu sorunu çözemedim.

Son olarak, başka bir python kütüphanesi olan pymysql‘i (sürüm: 1.1.1) MariaDB sunucusuna bağlanmak için denedim, kod aşağıdaki gibidir:

import pymysql  
  
# MariaDB sunucusuna bağlan  
conn = pymysql.connect(  
    host="192.168.1.60",  
    port=3306,  
    user="mysql",  
    password="xxx"  
)  
  
cursor = conn.cursor()  
cursor.execute("SELECT VERSION()")  
print("MariaDB sürümü:", cursor.fetchone()[0])  
  
cursor.close()  
conn.close()

Herhangi bir hata olmadan, başarıyla bağlandı ve MariaDB sürümünü yazdırdı.

Ancak hala daha önce bağlanılamamasının nedenini bilmiyorum.

Bu web sayfasının diğer sürümleri

Bu makalenin çeşitli dil sürümleri bulunmaktadır.

Yorum yapmak isterseniz, lütfen aşağıdaki web sayfasını ziyaret edin:

ZH EN ZH-TW JA

Bu web sayfaları yalnızca görüntülemeyi destekler, yorum veya mesaj bırakılamaz, ancak daha fazla dil seçeneği sunar ve daha kısa yükleme süresine sahiptir:

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

Bu makale AI tarafından Chinese (Simplified) dilinden Turkish diline çevrilmiştir.