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

Mac Catalina下Python mysql.connector连接本地MySQL报2003错误

错误根因

报错2003: Can't connect to MySQL server on 'localhost:3306' (61 Connection refused)和Python代码语法无关,核心是你写的连接请求发出去之后,本机3306端口没有运行可响应的MySQL服务,常见触发场景:

  • 本地仅安装了Python侧的mysql-connector驱动包,未安装MySQL服务端程序
  • 已安装MySQL但服务未启动,Mac系统默认不会自动开启MySQL服务
  • MySQL服务启动后未监听默认3306端口,或绑定了非127.0.0.1的地址
  • 代码里的账号密码是占位假值,这是连接通之后才会校验的项,不是当前报错的诱因
分步修复方案

按顺序排查,每步做完验证一次即可:

1. 检查MySQL服务端安装状态

打开终端执行命令:
mysql --version

  • 如果返回command not found:说明本地没装MySQL服务端,先完成MySQL社区版安装,安装过程中牢记自己设置的root账号密码,入门阶段不要选特殊字符做密码避免转义问题。
  • 如果返回版本信息:说明已安装,进入下一步。

2. 启动MySQL服务

Mac Catalina下两种启动方式选其一即可:

  • 图形化操作:打开系统偏好设置,拉到面板最下方找到MySQL图标,进入后点击「Start MySQL Server」,等状态标识变为绿色即启动成功。
  • 命令行操作:终端执行以下命令,输入Mac开机密码确认即可:
    sudo /usr/local/mysql/support-files/mysql.server start
    看到输出SUCCESS字样代表启动完成。

3. 确认端口监听正常

服务启动后执行命令校验3306端口是否被MySQL占用:
lsof -i :3306

  • 如果输出结果里存在mysqld相关进程:说明端口监听正常,进入下一步。
  • 如果无任何输出:说明MySQL使用了非默认端口,回到系统偏好设置的MySQL配置面板查看实际监听端口,后续连接代码里需要加port=实际端口号参数。

4. 修正代码连接参数

你当前代码里的user="Username"、password="Idon'tknowE"都是占位值,新安装的MySQL默认管理员用户名为root,密码是你安装时自行设置的,替换为真实值即可。修正后的基础测试代码参考:

import mysql.connector
# 首次连接不需要指定database参数,连上服务后再执行建库操作
conn = mysql.connector.connect(
    host="127.0.0.1",
    user="root", # 替换为你的真实用户名
    password="你的MySQL安装时设置的密码", # 替换为真实密码
    # port=3307 # 如果上一步查到非3306端口,取消注释改对端口
)
cursor = conn.cursor()
# 测试建库
cursor.execute("CREATE DATABASE IF NOT EXISTS mydatabase")
print("数据库创建成功")

注意:入门阶段不要在MySQL密码里加单引号、反斜杠这类特殊字符,会触发Python字符串转义问题,等熟悉连接逻辑后再调整密码规则。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 13:27:22