Am folosit biblioteca mysql-connector-python
de la mysql, am încercat să mă conectez la baza de date MariaDB
a altor dispozitive din rețeaua locală, dar am eșuat și am ieșit direct, fără a afișa niciun mesaj de eroare.
Descrierea problemei
Versiunile software-ului:
-
MariaDB server 10.11.6
-
mysql-connector-python 9.2.0
-
MariaDB server, IP este 192.168.1.60
-
Client, IP este 192.168.1.35
Codul Python este următorul:
import mysql.connector
import logging
# 配置日志记录
logging.basicConfig(level=logging.DEBUG, format='%(asctime)s - %(levelname)s - %(message)s')
try:
logging.info("Connecting to the database...")
connection = mysql.connector.connect(
host="192.168.1.60",
port=3306,
user="mysql",
password="xxx")
logging.info("Connection established.")
# 创建一个游标对象,用于执行 SQL 查询
cursor = connection.cursor()
# 获取所有数据库
logging.info("Executing SHOW DATABASES query...")
cursor.execute("SHOW DATABASES")
# 打印所有数据库及每个数据库中的表名
for (database,) in cursor.fetchall():
logging.info(f"Database: {database}")
# 切换到当前数据库
cursor.execute(f"USE {database}")
# 获取并打印当前数据库中的所有表
cursor.execute("SHOW TABLES")
for (table,) in cursor.fetchall():
logging.info(f" Table: {table}")
# 关闭游标和连接
cursor.close()
connection.close()
logging.info("Connection closed.")
except mysql.connector.Error as err:
logging.error(f"Error: {err}")
except Exception as e:
logging.error(f"Unexpected error: {e}")
După rularea acestui cod, se iese direct, fără a afișa niciun mesaj de eroare.
Am verificat înregistrările serviciului serverului MariaDB
și am găsit următoarele informații despre erori.
mariadbd: [Warning] Aborted connection 48 to db: 'unconnected' user: 'unauthenticated' host: '192.168.1.35' (This connection closed normally without authentication)
Încercări de rezolvare a problemei
Deoarece serverul MariaDB
poate primi cereri de conectare, configurațiile firewall-ului ambelor dispozitive sunt normale.
Am verificat permisiunile utilizatorului de conectare și am constatat că sunt, de asemenea, normale.
Am căutat o mulțime de informații și am încercat diverse metode. Dar, indiferent de situație, nu am putut rezolva această problemă.
În cele din urmă, am încercat să folosesc o altă bibliotecă python pymysql
(versiunea: 1.1.1) pentru a mă conecta la serverul MariaDB
, codul este următorul:
import pymysql
# 连接到 MariaDB 服务器
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()
Nu au existat erori, conexiunea a fost stabilită cu succes și a fost afișată versiunea MariaDB.
Dar încă nu știu motivul pentru care nu s-a putut realiza conexiunea anterior.
Alte versiuni ale acestei pagini web
Acest articol este disponibil în mai multe limbi.
Dacă doriți să postați un comentariu, vă rugăm să vizitați următoarele pagini web:
Aceste pagini web acceptă doar navigarea, nu puteți posta comentarii sau mesaje, dar oferă mai multe opțiuni de limbă și au un timp de încărcare mai scurt:
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
Acest articol a fost tradus din Chinese (Simplified) în Romanian prin AI.