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

从Heroku应用连接PythonAnywhere MySQL数据库的问题求助

解决Heroku连接PythonAnywhere MySQL数据库的分步指南

首先,先解决你遇到的bash: heroku: command not found问题:

你在Heroku网页版控制台里执行heroku命令是行不通的——这个控制台是你的应用运行的服务器 shell,不是用来操作Heroku平台的CLI环境。你需要在本地电脑上安装Heroku CLI,才能执行heroku config:add这类管理命令。

接下来是完整的连接步骤:

1. 本地安装并登录Heroku CLI

  • 下载对应系统的Heroku CLI(Windows/macOS/Linux均有支持),安装完成后打开本地终端。
  • 执行登录命令:heroku login,按照提示在浏览器中完成登录验证。

2. 整理PythonAnywhere MySQL的正确连接信息

先在PythonAnywhere控制面板中找到你的数据库详情:

  • 数据库主机:格式为你的PythonAnywhere用户名.mysql.pythonanywhere-services.com(例如elias.mysql.pythonanywhere-services.com)
  • 数据库用户名:格式为你的PythonAnywhere用户名$数据库名(例如你创建的数据库叫myapp_db,用户名就是elias$myapp_db)
  • 数据库密码:你创建数据库时设置的密码
  • 数据库名:你在PythonAnywhere创建的数据库名称(例如myapp_db)
  • 端口:默认3306

3. 配置Heroku环境变量(DATABASE_URL)

在本地终端执行正确的config:set命令,替换为你的实际信息:

heroku config:set DATABASE_URL="mysql2://PYTHONANYWHERE_USER:PASSWORD@DATABASE-HOST-ADDRESS:3306/DATABASE-NAME" --app HEROKU-APP-NAME

注意:如果你的密码包含特殊字符(比如@、&、!),需要对这些字符进行URL编码(例如@换成%40,&换成%26),否则会导致连接字符串解析错误。

4. 允许Heroku访问PythonAnywhere的MySQL数据库

PythonAnywhere的MySQL默认只允许内部环境访问,必须手动添加外部访问权限:

  • 登录PythonAnywhere,进入Databases页面
  • 找到你的数据库,点击Allow external access选项
  • 在这里添加Heroku的出站IP地址范围。如果你不确定具体IP,可以暂时添加0.0.0.0/0(允许所有外部IP访问,生产环境建议只添加Heroku官方公布的IP段,避免安全风险)

5. 在Heroku应用中配置数据库连接

根据你的应用类型做相应配置:

例1:Python/Django应用

  • 确保安装了数据库驱动,在requirements.txt中添加:
    dj-database-url>=0.5.0
    mysqlclient>=2.2.0
    
  • 在settings.py中配置数据库:
    import os
    import dj_database_url
    
    DATABASES = {
        'default': dj_database_url.config(default=os.getenv('DATABASE_URL'))
    }
    

例2:Python/Flask+SQLAlchemy应用

  • 在requirements.txt中添加:
    sqlalchemy>=2.0.0
    mysqlclient>=2.2.0
    
  • 在应用代码中获取环境变量并创建连接:
    import os
    from sqlalchemy import create_engine
    
    DATABASE_URL = os.getenv("DATABASE_URL")
    engine = create_engine(DATABASE_URL)
    

6. 验证连接

  • 部署更新后的应用到Heroku:git push heroku main
  • 查看应用日志确认没有数据库连接错误:heroku logs --app HEROKU-APP-NAME --tail,也可以在Heroku网页控制台中执行测试连接的代码。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 09:37:58