A mysql mysql-connector-python könyvtárát használom, hogy megpróbáljak csatlakozni egy helyi hálózaton lévő másik eszköz MariaDB adatbázisához, de ez nem sikerült, ráadásul közvetlenül kilép, és nem ad ki semmilyen hibaüzenetet.

Probléma leírása

Szoftver verziók:

  • MariaDB server 10.11.6

  • mysql-connector-python 9.2.0

  • MariaDB server, IP címe 192.168.1.60

  • Kliens, IP címe 192.168.1.35

Python kód az alábbiak szerint:

import mysql.connector  
import logging  
  
# Konfigurálja a naplózást  
logging.basicConfig(level=logging.DEBUG, format='%(asctime)s - %(levelname)s - %(message)s')  
  
try:  
    logging.info("Csatlakozás az adatbázishoz...")  
    connection = mysql.connector.connect(  
        host="192.168.1.60",  
        port=3306,  
        user="mysql",  
        password="xxx")  
    logging.info("Kapcsolat létrejött.")  
  
    # Hozzon létre egy kurzor objektumot az SQL lekérdezések végrehajtásához  
    cursor = connection.cursor()  
  
    # Szerezze meg az összes adatbázist  
    logging.info("SHOW DATABASES lekérdezés futtatása...")  
    cursor.execute("SHOW DATABASES")  
  
    # Nyomtassa ki az összes adatbázist és az egyes adatbázisok tábláinak nevét  
    for (database,) in cursor.fetchall():  
        logging.info(f"Adatbázis: {database}")  
  
        # Váltson az aktuális adatbázisra  
        cursor.execute(f"USE {database}")  
  
        # Szerezze meg és nyomtassa ki az aktuális adatbázis összes tábláját  
        cursor.execute("SHOW TABLES")  
  
        for (table,) in cursor.fetchall():  
            logging.info(f"  Tábla: {table}")  
  
    # Zárja be a kurzort és a kapcsolatot  
    cursor.close()  
    connection.close()  
    logging.info("Kapcsolat lezárva.")  
  
except mysql.connector.Error as err:  
    logging.error(f"Hiba: {err}")  
except Exception as e:  
    logging.error(f"Váratlan hiba: {e}")

A kód futtatása után közvetlenül kilép, és nem ad ki semmilyen hibaüzenetet.

Megnéztem a MariaDB szerver oldali szolgáltatási naplóit, és a következő hibaüzenetet találtam.

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

Próbálkoztam a probléma megoldásával

Mivel a MariaDB szerver oldala képes fogadni a kapcsolódási kéréseket, így mindkét eszköz tűzfal konfigurációja normális.

Ellenőriztem a bejelentkező felhasználó jogosultságait, és azt is rendben találtam.

Sok információt kerestem, és különféle módszereket próbáltam ki. De valahogy nem tudtam megoldani a problémát.

Végül megpróbáltam egy másik python könyvtárat, a pymysql-t (verzió: 1.1.1) használni a MariaDB szerverhez való kapcsolódáshoz, a kód az alábbiak szerint:

import pymysql  
  
# Csatlakozás a MariaDB szerverhez  
conn = pymysql.connect(  
    host="192.168.1.60",  
    port=3306,  
    user="mysql",  
    password="xxx"  
)  
  
cursor = conn.cursor()  
cursor.execute("SELECT VERSION()")  
print("MariaDB verzió:", cursor.fetchone()[0])  
  
cursor.close()  
conn.close()

Semmilyen hiba nem jelentkezett, sikeresen csatlakozott és kiírta a MariaDB verzióját.

De még mindig nem tudom, mi volt az oka a korábbi sikertelen kapcsolódásnak.

A weboldal egyéb verziói

Ez a cikk több nyelven is elérhető.

Ha megjegyzést szeretne fűzni, látogassa meg a következő weboldalakat:

ZH EN ZH-TW JA

Ezek a weboldalak csak böngészést támogatnak, nem lehet megjegyzéseket fűzni vagy üzenetet hagyni, de több nyelvi lehetőséget kínálnak, és rövidebb a betöltési idő:

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

Ezt a cikket a Chinese (Simplified) nyelvről magyar nyelvre fordította az AI.