Jeg bruker mysqls mysql-connector-python
-bibliotek og prøver å koble til en MariaDB
-database på andre enheter i det lokale nettverket, men det mislykkes, og det avsluttes direkte uten å skrive ut noen feilmeldinger.
Problembeskrivelse
Programvareversjon:
-
MariaDB server 10.11.6
-
mysql-connector-python 9.2.0
-
MariaDB server, IP er 192.168.1.60
-
Klient, IP er 192.168.1.35
Python-kode er som følger:
import mysql.connector
import logging
# Konfigurer loggføring
logging.basicConfig(level=logging.DEBUG, format='%(asctime)s - %(levelname)s - %(message)s')
try:
logging.info("Kobler til databasen...")
connection = mysql.connector.connect(
host="192.168.1.60",
port=3306,
user="mysql",
password="xxx")
logging.info("Tilkobling etablert.")
# Opprett et markørobjekt for å utføre SQL-spørringer
cursor = connection.cursor()
# Hent alle databaser
logging.info("Utfører SHOW DATABASES-spørring...")
cursor.execute("SHOW DATABASES")
# Skriv ut alle databaser og tabellnavn i hver database
for (database,) in cursor.fetchall():
logging.info(f"Database: {database}")
# Bytt til gjeldende database
cursor.execute(f"USE {database}")
# Hent og skriv ut alle tabeller i gjeldende database
cursor.execute("SHOW TABLES")
for (table,) in cursor.fetchall():
logging.info(f" Table: {table}")
# Lukk markøren og tilkoblingen
cursor.close()
connection.close()
logging.info("Tilkobling lukket.")
except mysql.connector.Error as err:
logging.error(f"Error: {err}")
except Exception as e:
logging.error(f"Unexpected error: {e}")
Etter å ha kjørt denne koden, avsluttes den direkte uten å skrive ut noen feilmeldinger.
Jeg sjekket tjenesteposten på MariaDB
-serversiden og fant følgende feilmelding.
mariadbd: [Warning] Aborted connection 48 to db: 'unconnected' user: 'unauthenticated' host: '192.168.1.35' (This connection closed normally without authentication)
Forsøk på å løse problemet
Fordi MariaDB
-serversiden kan motta tilkoblingsforespørselen, er konfigurasjonen av brannmuren til begge enhetene normal.
Jeg sjekket tillatelsene til påloggingsbrukeren og fant at den også var normal.
Jeg har søkt i mange ressurser og prøvd forskjellige metoder. Men uansett hva, har jeg ikke klart å løse dette problemet.
Til slutt prøvde jeg å bruke et annet python-bibliotek pymysql
(versjon: 1.1.1) for å koble til MariaDB
-serversiden, koden er som følger:
import pymysql
# Koble til MariaDB-serveren
conn = pymysql.connect(
host="192.168.1.60",
port=3306,
user="mysql",
password="xxx"
)
cursor = conn.cursor()
cursor.execute("SELECT VERSION()")
print("MariaDB version:", cursor.fetchone()[0])
cursor.close()
conn.close()
Ingen feilrapporter, koblet vellykket til og skrev ut MariaDB-versjonen.
Men jeg vet fortsatt ikke hvorfor jeg ikke kunne koble til før.
Andre versjoner av denne nettsiden
Denne artikkelen finnes i flere språkversjoner.
Hvis du vil legge igjen en kommentar, kan du besøke følgende nettside:
Disse nettsidene støtter bare surfing, og du kan ikke legge igjen kommentarer eller meldinger, men de gir flere språkalternativer og har kortere lastetid:
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
Denne artikkelen er oversatt fra Chinese (Simplified) til Norwegian av AI.