Django在PythonAnywhere连接MySQL报(2003)连接超时错误如何解决
排查解决步骤
- 首先确认PythonAnywhere后台「Databases」页面的MySQL服务处于正常运行状态,没有暂停或故障提示。
- 核对配置项的准确性:
- 数据库
NAME必须严格遵循用户名$数据库名的格式,$符号和前后的内容不能有任何拼写错误 HOST地址直接从PythonAnywhere的Databases页面复制给出的MySQL主机地址,不要自行拼接- 填写的
PASSWORD是你单独设置的MySQL数据库密码,不是PythonAnywhere的账号登录密码,二者相互独立,很多用户会在这里混淆
- 数据库
- 先在PythonAnywhere的Bash终端执行直连命令测试:
执行后输入MySQL密码,如果这一步都无法连接,先解决基础连接问题再排查Django侧配置。mysql -u 你的用户名 -h 你的用户名.mysql.pythonanywhere-services.com -p '你的用户名$数据库名' - 若Bash直连正常但Django连接报错,检查你的Django运行环境是否安装了MySQL驱动:
不建议使用pymysql作为替代驱动,PythonAnywhere环境对mysqlclient的兼容性更好。pip install mysqlclient - 重点注意访问限制:PythonAnywhere的MySQL服务默认仅允许同账号内的站内服务访问,不对外开放公网连接权限。如果你是在本地设备运行Django尝试连接PythonAnywhere的MySQL,必然会出现超时错误,需要把Django项目部署到同一个PythonAnywhere账号下才能正常连接。如果是付费账户需要外部访问,要在Databases页面把你的公网IP添加到MySQL访问白名单中。
内容的提问来源于stack exchange,提问作者João Marcelino
相关产品推荐
相关产品推荐

