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

使用Python连接MySQL数据库遇OperationalError错误求助

解决MySQL连接错误OperationalError: 2003: Can't connect to MySQL server on 'localhost:3306' (10061)

以下是逐一排查的解决方案:

  • 检查MySQL服务状态

    • Windows:打开服务面板(运行services.msc),找到MySQL服务,确认状态为“正在运行”。如果未运行,右键选择“启动”,或用命令行执行net start mysql。
    • 类Unix系统(Linux/macOS):执行systemctl status mysql查看状态,未运行则执行sudo systemctl start mysql启动服务。
  • 确认端口配置一致

    • 检查MySQL配置文件(Windows为my.ini,类Unix为my.cnf)中的port参数,确保和Python代码中指定的端口一致(默认3306)。如果代码中未显式指定端口,确保配置文件端口为3306;若修改过端口,连接时需添加port=自定义端口参数。
  • 替换localhost为127.0.0.1尝试
    部分环境下localhost解析可能异常,修改连接代码中的host为127.0.0.1:

    import mysql.connector
    try:
        cnx = mysql.connector.connect(
            host="127.0.0.1",
            user="你的用户名",
            password="你的密码",
            database="你的数据库名"
        )
        print("连接成功")
        cnx.close()
    except mysql.connector.Error as err:
        print(f"错误: {err}")
    
  • 排查防火墙拦截

    • Windows:临时关闭Windows Defender防火墙测试,或在防火墙规则中添加允许MySQL(3306端口)的入站/出站规则。
    • 类Unix系统:检查ufw/iptables规则,确保3306端口允许本地连接,比如执行sudo ufw allow 3306(针对ufw)。
  • 验证本地连接权限
    登录MySQL服务器,执行以下命令检查用户权限:

    SELECT user, host FROM mysql.user;
    

    确保你的数据库用户对应的host为localhost或%(允许所有来源)。若权限不足,执行:

    GRANT ALL PRIVILEGES ON 你的数据库名.* TO '你的用户名'@'localhost' IDENTIFIED BY '你的密码';
    FLUSH PRIVILEGES;
    
  • 更新mysql-connector库
    旧版本的mysql-connector可能与MySQL服务器版本不兼容,执行命令更新:

    pip install --upgrade mysql-connector-python
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.04 17:04:59