Mac环境下localhost使用mysql-connector-python连接MySQL报错问询
问题排查与解决指引
2003报错根因
该报错是本地MySQL服务未正常运行或未监听默认3306端口导致,和Python代码本身逻辑无关,优先做Python环境外的基础检查。
前置环境检查(无需修改ipconfig/ifconfig网络配置)
默认连接localhost走本地回环网络,无需额外调整网卡配置,仅需完成两项检查:
- 启动MySQL服务:
- Windows:在服务管理器中找到对应版本的MySQL服务,点击启动
- Linux(Debian/Ubuntu):执行
sudo systemctl start mysql - Linux(CentOS/RHEL):执行
sudo systemctl start mysqld - Mac(brew安装):执行
sudo brew services start mysql
- 验证端口监听:
- Windows执行
netstat -ano | findstr 3306 - Linux/Mac执行
netstat -an | grep 3306
正常可以看到127.0.0.1:3306的监听记录,若你修改过MySQL默认端口,后续连接配置需同步指定port参数。
- Windows执行
- 验证账号可用性:命令行执行
mysql -u root -p输入你设置的MySQL root密码,确认可以正常进入MySQL命令行,排除账号密码错误问题。
身份认证说明
连接参数中的user、password对应MySQL独立的账号体系,和操作系统(Unix/Windows)的账号密码完全无关,root是MySQL默认的管理员账号,密码为你安装MySQL过程中设置的专属密码。
无明文密码的最小连接方案
不想在代码中明文存储密码也不需要手动输入,可以用MySQL官方支持的本地配置文件存储凭证:
- 在当前用户家目录创建
.my.cnf配置文件:- Windows路径:
C:\Users\你的用户名\.my.cnf - Linux/Mac路径:
~/.my.cnf
Linux/Mac需额外执行chmod 600 ~/.my.cnf限制文件仅当前用户可读写,避免凭证泄露。
配置文件内容如下:
[client] user = root password = 你的MySQL真实root密码 host = localhost # 若修改过默认端口则新增 port=自定义端口号 - Windows路径:
- Python代码直接读取配置完成连接、创建cursor:
import mysql.connector mydb = mysql.connector.connect(option_files='~/.my.cnf') cursor = mydb.cursor()
免账号密码连接说明
默认MySQL不支持无账号密码连接,仅当你手动开启匿名用户权限时可实现,该操作存在极高安全风险,无论测试还是生产环境都不推荐使用。
内容的提问来源于stack exchange,提问作者Frank Harris
相关产品推荐
相关产品推荐

