惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

月光博客
月光博客
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
人人都是产品经理
人人都是产品经理
IT之家
IT之家
Cyberwarzone
Cyberwarzone
T
Troy Hunt's Blog
有赞技术团队
有赞技术团队
阮一峰的网络日志
阮一峰的网络日志
T
Threat Research - Cisco Blogs
S
SegmentFault 最新的问题
Apple Machine Learning Research
Apple Machine Learning Research
G
GRAHAM CLULEY
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
博客园 - 叶小钗
Last Week in AI
Last Week in AI
C
CERT Recently Published Vulnerability Notes
The Hacker News
The Hacker News
Jina AI
Jina AI
T
Tor Project blog
V
Vulnerabilities – Threatpost
酷 壳 – CoolShell
酷 壳 – CoolShell
Spread Privacy
Spread Privacy
博客园_首页
C
Cybersecurity and Infrastructure Security Agency CISA
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
Simon Willison's Weblog
Simon Willison's Weblog
Security Latest
Security Latest
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
博客园 - 司徒正美
V2EX - 技术
V2EX - 技术
I
Intezer
The Cloudflare Blog
Cisco Talos Blog
Cisco Talos Blog
SecWiki News
SecWiki News
博客园 - 【当耐特】
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
L
Lohrmann on Cybersecurity
Scott Helme
Scott Helme
Google Online Security Blog
Google Online Security Blog
量子位
The Last Watchdog
The Last Watchdog
AI
AI
Application and Cybersecurity Blog
Application and Cybersecurity Blog
S
Security Affairs
P
Palo Alto Networks Blog
S
Secure Thoughts
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
Attack and Defense Labs
Attack and Defense Labs

地球人

Charged App - 使用说明和隐私权政策 kas 使用说明 kas 用户协议 CSUBOT 机器人 Discord 版使用说明书 groupultra telegram-search 部署教程 CSUBOT 机器人程序部署说明书 CSUBOT 机器人使用说明书 Windows 设备开启 BBR 拥塞控制算法 2026年最新:Apple iOS 上免费的代理客户端 如何在 Linux 设备上安装 Manticore Search (2025年3月)Linux 编译安装 PostgreSQL 17.4 Raspberry Pi OS 全球软件源镜像站点列表 如何在树莓派上安装 Raspberry Pi OS(2025年) 怎样删除 Archive.today 上已经存档的网页? 我测试了全部的中国AI应用 hexo-submit-urls-to-search-engine 插件说明文档 查找iOS应用可通过哪些地区的Apple App Store下载的方法 东亚地区国际客运轮渡航线地图 TikTok 和 RedNote 的区别 跨境转账汇款-电汇费用分析 低成本保号香港电话卡 ClubSIM ( 支持 VoWiFi ) 解决 MX Player 报错: this audio format eac3 is not supported 使用 Kiwix 下载并阅读离线维基百科 隐私权政策
MariaDB服务器报错unauthenticated?可能是MySQL-connector-python的问题
地球人 · 2025-03-06 · via 地球人

我使用 mysql 的 mysql-connector-python 库,尝试连接局域网内其他设备的 MariaDB 数据库,但是失败了,而且是直接退出,没有输出任何错误信息。

问题描述

软件版本:

  • MariaDB server 10.11.6

  • mysql-connector-python 9.2.0

  • MariaDB server, IP 为 192.168.1.60

  • 客户端,IP 为 192.168.1.35

Python 代码如下:

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}")

运行这段代码之后,直接退出,没有输出任何错误信息。

我查看 MariaDB 服务器端的服务记录,发现有如下错误信息。

mariadbd: [Warning] Aborted connection 48 to db: 'unconnected' user: 'unauthenticated' host: '192.168.1.35' (This connection closed normally without authentication)

尝试解决问题

因为 MariaDB 服务器端可以收到连接的请求,所以说两个设备的防火墙的配置都是正常的。

我检查了登录用户的权限,发现也是正常的。

我查找了很多资料,尝试了各种方法。但是无论如何,一直无法解决这个问题。

最后,尝试使用另外一个 python 库 pymysql (版本: 1.1.1) 连接 MariaDB 服务器端,代码如下:

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()

没有任何报错,成功连接并打印 MariaDB 的版本。

但是还是不知道之前无法连接的原因。

本网页的其他版本

本文章有多种语言的版本。

这些网页仅支持浏览,无法发表评论或留言,但提供了更多语言选项,并且加载时间更短:

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