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