在PythonAnywhere部署Python项目时报MySQL 2003连接拒绝错误
报错根因定位
首先你的错误日志核心触发点是MySQL连接被拒绝:
mysql.connector.errors.InterfaceError: 2003: Can't connect to MySQL server on 'remotemysql.com:3306' (111 Connection refused)
故障属于网络或服务配置问题,和业务代码逻辑无关,按以下优先级排查解决:
- PythonAnywhere免费账户出站限制:免费版本仅支持访问官方白名单内的域名,且仅允许走80/443端口的HTTP/HTTPS请求,默认禁止对外发起3306端口的TCP连接。如果用的是免费账户,要么升级到付费套餐解锁全端口出站权限,要么替换为PythonAnywhere平台内置的MySQL服务,不要使用外部第三方MySQL实例。
- 远程MySQL服务状态校验:确认remotemysql.com上的实例是否正常运行,服务有没有宕机、端口有没有对外开放、IP白名单有没有拦截PythonAnywhere的出口IP段。
- 连接参数校验:检查
main.py第7行的数据库连接配置,确认主机地址、端口、账号、密码、数据库名没有拼写错误,端口参数没有误填。 - 连通性手动验证:登录PythonAnywhere的bash控制台,执行
telnet remotemysql.com 3306命令,如果返回连接失败,即可确认是网络层面不通,和代码配置无关。
内容的提问来源于stack exchange,提问作者ozmen
相关产品推荐
相关产品推荐

