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:

ZH EN ZH-TW JA

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.