Koristim mysql-ovu biblioteku mysql-connector-python
i pokušavam se povezati s MariaDB
bazom podataka drugih uređaja unutar lokalne mreže, ali ne uspijevam, a aplikacija se izravno zatvara bez ispisa ikakvih poruka o pogreškama.
Opis problema
Verzija softvera:
-
MariaDB server 10.11.6
-
mysql-connector-python 9.2.0
-
MariaDB server, IP je 192.168.1.60
-
Klijent, IP je 192.168.1.35
Python kod:
import mysql.connector
import logging
# Konfiguracija zapisivanja u datoteku dnevnika
logging.basicConfig(level=logging.DEBUG, format='%(asctime)s - %(levelname)s - %(message)s')
try:
logging.info("Povezivanje s bazom podataka...")
connection = mysql.connector.connect(
host="192.168.1.60",
port=3306,
user="mysql",
password="xxx")
logging.info("Uspostavljena veza.")
# Stvaranje objekta kursora za izvršavanje SQL upita
cursor = connection.cursor()
# Dohvat svih baza podataka
logging.info("Izvršavanje upita SHOW DATABASES...")
cursor.execute("SHOW DATABASES")
# Ispis svih baza podataka i naziva tablica u svakoj bazi podataka
for (database,) in cursor.fetchall():
logging.info(f"Baza podataka: {database}")
# Prebacivanje na trenutnu bazu podataka
cursor.execute(f"USE {database}")
# Dohvat i ispis svih tablica u trenutnoj bazi podataka
cursor.execute("SHOW TABLES")
for (table,) in cursor.fetchall():
logging.info(f" Tablica: {table}")
# Zatvaranje kursora i veze
cursor.close()
connection.close()
logging.info("Veza zatvorena.")
except mysql.connector.Error as err:
logging.error(f"Greška: {err}")
except Exception as e:
logging.error(f"Neočekivana greška: {e}")
Nakon pokretanja ovog koda, aplikacija se izravno zatvara bez ispisa ikakvih poruka o pogreškama.
U zapisima poslužitelja MariaDB
pronašao sam sljedeću poruku o pogrešci:
mariadbd: [Warning] Aborted connection 48 to db: 'unconnected' user: 'unauthenticated' host: '192.168.1.35' (This connection closed normally without authentication)
Pokušaj rješavanja problema
Budući da MariaDB
poslužitelj prima zahtjev za vezu, konfiguracija vatrozida na oba uređaja je u redu.
Provjerio sam dozvole korisnika za prijavu i ustanovio da su također u redu.
Potražio sam mnogo informacija i isprobao razne metode. Međutim, nikako nisam uspio riješiti ovaj problem.
Na kraju, pokušao sam koristiti drugu Python biblioteku pymysql
(verzija: 1.1.1) za povezivanje s MariaDB
poslužiteljem, kod je sljedeći:
import pymysql
# Povezivanje s MariaDB poslužiteljem
conn = pymysql.connect(
host="192.168.1.60",
port=3306,
user="mysql",
password="xxx"
)
cursor = conn.cursor()
cursor.execute("SELECT VERSION()")
print("MariaDB verzija:", cursor.fetchone()[0])
cursor.close()
conn.close()
Nije bilo pogrešaka, uspješno sam se povezao i ispisao verziju MariaDB-a.
Ali još uvijek ne znam zašto se prije nisam mogao povezati.
Ostale verzije ove web stranice
Ovaj članak ima verzije na više jezika.
Ako želite objaviti komentar, posjetite sljedeće web stranice:
Ove web stranice podržavaju samo pregledavanje, ne možete objavljivati komentare ili ostavljati poruke, ali pružaju više jezičnih opcija i brže se učitavaju:
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
Ovaj je članak putem umjetne inteligencije preveden s kineskog (pojednostavljenog) na hrvatski.