Používám mysql knihovnu mysql-connector-python
a pokouším se připojit k databázi MariaDB
na jiném zařízení v lokální síti, ale neúspěšně, a dokonce se program přímo ukončí bez jakýchkoli chybových hlášení.
Popis problému
Verze softwaru:
-
MariaDB server 10.11.6
-
mysql-connector-python 9.2.0
-
MariaDB server, IP adresa 192.168.1.60
-
Klient, IP adresa 192.168.1.35
Python kód:
import mysql.connector
import logging
# Konfigurace protokolování
logging.basicConfig(level=logging.DEBUG, format='%(asctime)s - %(levelname)s - %(message)s')
try:
logging.info("Připojuji se k databázi...")
connection = mysql.connector.connect(
host="192.168.1.60",
port=3306,
user="mysql",
password="xxx")
logging.info("Připojení navázáno.")
# Vytvoření kurzorového objektu pro provádění SQL dotazů
cursor = connection.cursor()
# Získání všech databází
logging.info("Provádím dotaz SHOW DATABASES...")
cursor.execute("SHOW DATABASES")
# Výpis všech databází a tabulek v každé databázi
for (database,) in cursor.fetchall():
logging.info(f"Databáze: {database}")
# Přepnutí na aktuální databázi
cursor.execute(f"USE {database}")
# Získání a výpis všech tabulek v aktuální databázi
cursor.execute("SHOW TABLES")
for (table,) in cursor.fetchall():
logging.info(f" Tabulka: {table}")
# Uzavření kurzoru a připojení
cursor.close()
connection.close()
logging.info("Připojení uzavřeno.")
except mysql.connector.Error as err:
logging.error(f"Chyba: {err}")
except Exception as e:
logging.error(f"Neočekávaná chyba: {e}")
Po spuštění tohoto kódu se program přímo ukončí bez výpisu jakýchkoli chybových hlášení.
V záznamech služby MariaDB
serveru jsem nalezl následující chybové hlášení.
mariadbd: [Warning] Aborted connection 48 to db: 'unconnected' user: 'unauthenticated' host: '192.168.1.35' (This connection closed normally without authentication)
Pokusy o řešení problému
Protože server MariaDB
přijímá požadavky na připojení, konfigurace firewallu na obou zařízeních je v pořádku.
Zkontroloval jsem oprávnění přihlašovacího uživatele a zjistil jsem, že jsou také v pořádku.
Hledal jsem mnoho informací a zkoušel různé metody. Nicméně, problém se mi nepodařilo vyřešit.
Nakonec jsem zkusil použít jinou python knihovnu pymysql
(verze: 1.1.1) pro připojení k serveru MariaDB
, kód:
import pymysql
# Připojení k serveru MariaDB
conn = pymysql.connect(
host="192.168.1.60",
port=3306,
user="mysql",
password="xxx"
)
cursor = conn.cursor()
cursor.execute("SELECT VERSION()")
print("Verze MariaDB:", cursor.fetchone()[0])
cursor.close()
conn.close()
Bez jakékoli chyby se úspěšně připojil a vytiskl verzi MariaDB.
Ale stále nevím, proč se předtím nepodařilo připojit.
Další verze této webové stránky
Tento článek má více jazykových verzí.
Pokud chcete přidat komentář, navštivte následující stránky:
Tyto webové stránky podporují pouze prohlížení a nelze na nich komentovat, ale poskytují více jazykových možností a kratší dobu načítání:
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
Tento článek byl přeložen z Chinese (Simplified) do Czech pomocí AI.