Python连接MySQL数据库失败:Error 2003报错求助
解决MySQL连接报错Error 2003: Can't connect to MySQL server on 'localhost' (10061)
结合你已验证的信息(服务运行正常、账号密码正确、Workbench可连接),给出以下针对性解决方案:
1. 替换localhost为127.0.0.1强制TCP/IP连接
Windows环境下localhost可能优先解析为IPv6地址(::1),而你的MySQL服务可能仅监听IPv4的127.0.0.1。修改脚本配置:
config = { 'user': 'username', 'password': 'password', 'host': '127.0.0.1', # 替换为127.0.0.1 'database': 'mydatabase' }
2. 检查并修复用户登录权限
确认你的数据库用户是否允许从localhost或127.0.0.1登录:
- 通过Workbench登录MySQL,执行SQL查询用户权限:
SELECT user, host FROM mysql.user WHERE user = 'username';
- 如果结果中
host列不是localhost或127.0.0.1,执行授权命令:
GRANT ALL PRIVILEGES ON mydatabase.* TO 'username'@'localhost' IDENTIFIED BY 'password'; FLUSH PRIVILEGES;
(若需要允许从127.0.0.1登录,将@'localhost'替换为@'127.0.0.1')
3. 调整mysql-connector-python版本兼容性
你使用的mysql-connector-python 8.0.23与MySQL Server 5.7可能存在兼容性问题,尝试降级到适配版本:
pip uninstall mysql-connector-python pip install mysql-connector-python==5.1.49
4. 检查MySQL配置文件的网络监听设置
打开MySQL配置文件(Windows下通常为my.ini,位于安装目录或data文件夹内):
- 确保
bind-address设置为127.0.0.1(允许本地IPv4连接) - 确保未开启
skip-networking配置(若存在该行,注释后重启MySQL服务)
内容的提问来源于stack exchange,提问作者Arjun Shekhawat
相关产品推荐
相关产品推荐

