You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ubuntu16服务器Python连接本地MySQL报111连接拒绝故障求助

故障排查与解决方案

一、获取Python侧更详细的MySQL连接报错方法

  • 捕获完整异常栈信息,可输出连接器所有内置错误字段及系统层错误原因,参考测试代码:
import mysql.connector
import errno
import os

try:
    conn = mysql.connector.connect(
        host="127.0.0.1",
        user="你的数据库用户名",
        password="你的数据库密码",
        database="目标库名",
        port=3306,
        connection_timeout=10
    )
except mysql.connector.Error as e:
    print(f"错误码: {e.errno}")
    print(f"错误描述: {e.msg}")
    print(f"完整异常参数: {e.args}")
    # 打印系统级连接错误原因
    if e.errno == 2003:
        print(f"系统层拒绝原因: {os.strerror(errno.ECONNREFUSED)}")
except Exception as e:
    print(f"非MySQL连接器异常: {str(e)}")
  • 开启连接器调试日志,可输出完整的握手、地址解析、权限校验过程日志,在连接代码前添加:
import logging
logging.basicConfig(level=logging.DEBUG)

二、问题根因排查说明

MySQL本身没有专门限制Python进程连接的独立配置,你遇到的报错100%是环境差异或配置错位导致,高概率命中以下场景:

  • 首先排查解释器版本错位问题:你提到业务依赖Python3脚本,但系统默认Python版本为2.7.12,大概率是跑脚本时用错了解释器,或者对应版本的mysql-connector未安装/版本不兼容。可分别执行python 测试脚本路径和python3 测试脚本路径验证结果差异。
  • 优先排查最常见的连接方式差异坑:CLI执行mysql命令默认走Unix套接字(路径一般为/var/run/mysqld/mysqld.sock),而Python连接器填写127.0.0.1时默认走TCP连接,若MySQL未开启TCP监听,哪怕CLI能正常登录也会报TCP连接拒绝。
    验证方法:执行mysql -h 127.0.0.1 -u 你的用户名 -p测试TCP方式能否登录,若登录失败则说明MySQL未开启TCP监听,可在Python连接参数中添加unix_socket='/var/run/mysqld/mysqld.sock'强制走套接字连接,完全避开TCP层问题。
  • 检查AppArmor拦截:Ubuntu 16默认启用AppArmor,可能存在规则限制Python进程访问3306端口,执行dmesg | grep -i apparmor | grep -i python可查看是否有拦截日志,临时关闭验证可执行systemctl stop apparmor。
  • 检查连接器版本兼容性:高于8.0版本的mysql-connector默认使用caching_sha2_password认证插件,而MySQL 5.7默认认证插件为mysql_native_password,握手失败也会抛出连接错误,可在连接参数中添加auth_plugin='mysql_native_password'强制指定认证插件。

临时应急方案(快速推进迁移)

如果需要优先恢复脚本运行跳过排查,直接使用Unix套接字连接即可,参考代码:

conn = mysql.connector.connect(
    unix_socket='/var/run/mysqld/mysqld.sock',
    user="你的数据库用户名",
    password="你的数据库密码",
    database="目标库名",
    auth_plugin='mysql_native_password'
)

内容的提问来源于stack exchange,提问作者MOLEDesign

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 21:27:02