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

推荐订阅源

B
Blog RSS Feed
量子位
Recent Announcements
Recent Announcements
T
The Blog of Author Tim Ferriss
美团技术团队
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
Blog — PlanetScale
Blog — PlanetScale
H
Help Net Security
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
博客园 - Franky
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
宝玉的分享
宝玉的分享
大猫的无限游戏
大猫的无限游戏
V
Visual Studio Blog
博客园 - 聂微东
aimingoo的专栏
aimingoo的专栏
Microsoft Security Blog
Microsoft Security Blog
U
Unit 42
J
Java Code Geeks
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
IT之家
IT之家
Hugging Face - Blog
Hugging Face - Blog
腾讯CDC
L
LangChain Blog

地球人

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-p...
地球人 · 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