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:
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.