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

无法用Python连接MySQL的问题求助(M1 Mac环境)

Python MySQL连接报错:2003 Can't connect to MySQL server on 'localhost:3306'

问题代码

if __name__ == '__main__':
    print_hi('PyCharm')

    print("Connecting to database.")
    mysqldb = mysql.connector.connect(
        host="localhost",
        user="username",
        password="password"
    )
    print(mysqldb)

报错信息

mysql.connector.errors.InterfaceError: 2003: Can't connect to MySQL server on 'localhost:3306' (61 Connection refused). 

已知情况

  • 终端可通过mysql -u username -p正常连接MySQL
  • 执行netstat -tln | grep 3306无返回结果
  • MySQL全局端口变量查询结果:
mysql> show global variables like '%port%';
    +--------------------------+-------+
    | Variable_name            | Value |
    +--------------------------+-------+
    | admin_port               | 33062 |
    | large_files_support      | ON    |
    | mysqlx_port              | 33060 |
    | mysqlx_port_open_timeout | 0     |
    | port                     | 0     |
    | report_port              | 0     |
  • select @@skip_networking;返回结果为1
  • 环境:M1 Mac

原因分析

  1. skip_networking=1说明MySQL禁用了TCP/IP网络连接,仅允许通过本地套接字(socket)连接。
  2. 终端能正常连接是因为默认使用本地套接字,而mysql.connector默认尝试通过TCP/IP连接localhost:3306,因此被拒绝。
  3. port=0进一步印证了MySQL未监听任何TCP端口。

解决办法

方法一:修改Python代码,使用本地套接字连接

先获取MySQL本地套接字的准确路径,执行终端命令:

mysql -u username -p -e "show variables like 'socket'"

通常M1 Mac上的路径可能是/tmp/mysql.sock或/opt/homebrew/var/mysql/mysql.sock(Homebrew安装的MySQL)。

修改连接代码,添加unix_socket参数:

mysqldb = mysql.connector.connect(
    user="username",
    password="password",
    unix_socket="/tmp/mysql.sock"  # 替换为实际获取的套接字路径
)

方法二:开启MySQL的TCP/IP连接

如果需要通过TCP/IP协议连接,修改MySQL配置文件:

  1. 找到配置文件:Homebrew安装的MySQL通常在/opt/homebrew/etc/my.cnf或/usr/local/etc/my.cnf,也可能是/etc/my.cnf。
  2. 在[mysqld]段落添加或修改以下配置:
skip_networking=0
port=3306
  1. 重启MySQL服务:
    • Homebrew安装:brew services restart mysql
    • 其他安装方式:根据系统执行对应重启命令(如sudo systemctl restart mysql)。
  2. 验证:执行netstat -tln | grep 3306能看到端口监听,此时原Python代码的host="localhost"即可正常连接。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 18:33:12