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

如何解决Heroku上Nextcord.py Discord Bot连接CockroachDB失败问题

Heroku部署Nextcord Bot连接CockroachDB问题排查与解决

问题背景

使用Nextcord.py开发的Discord Bot,本地可正常连接CockroachDB,但部署到Heroku后出现两类异常:

  • Web进程部署:触发R10启动超时错误
  • Worker进程部署:Bot命令可正常执行,但数据库连接超时

问题1:Web进程R10启动超时错误

错误日志

2023-06-14T10:29:55.300444+00:00 heroku[web.1]: Error R10 (Boot timeout) -> Web process failed to bind to $PORT within 60 seconds of launch

原因

Heroku的Web进程强制要求应用在60秒内绑定到$PORT环境变量指定的HTTP端口,但Discord Bot是后台服务,不需要监听HTTP请求,因此不适合使用Web进程类型。

解决方法

确认项目根目录的Procfile配置为Worker进程:

worker: python your_bot_main_file.py

(将your_bot_main_file.py替换为你的Bot入口文件名)


问题2:Worker进程数据库连接超时

错误日志

2023-06-14T10:46:44.323804+00:00 app[worker.1]: psycopg2.OperationalError: connection to server at "enter server here" (IP), port 32481 failed: Connection timed out
2023-06-14T10:46:44.323805+00:00 app[worker.1]:     Is the server running on that host and accepting TCP/IP connections?

可能原因及解决方法

1. CockroachDB IP白名单未包含Heroku出站IP

Heroku应用使用动态出站IP,需将Heroku官方公布的所有出站IP段添加到CockroachDB的IP允许列表:

  • 登录CockroachDB控制台,进入对应集群的网络设置页面
  • 将Heroku出站IP范围添加至允许访问的IP列表

2. SSL配置不完整(sslmode=verify-full时)

当sslmode设为verify-full时,psycopg2需要验证服务器证书,必须指定根证书路径:

  • 下载CockroachDB的根证书(root.crt),放置到项目根目录
  • 修改数据库连接代码,添加sslrootcert参数:
conn = psycopg2.connect(
    host=os.getenv('HOST'),
    port=os.getenv('PORT'),
    database=os.getenv('DATABASE'),
    user=os.getenv('USER'),
    password=os.getenv('PASSWORD'),
    sslmode=os.getenv('SSLMODE'),
    sslrootcert='root.crt'
)
  • 确保root.crt已提交到Git(不要添加到.gitignore)

3. 环境变量配置错误

  • 检查PORT变量为纯数字格式,无额外符号或引号
  • 核对HOST、USER、PASSWORD等参数与CockroachDB控制台提供的信息完全一致
  • 在Heroku控制台设置→Config Vars中重新确认所有变量值

4. 手动测试连接有效性

通过Heroku命令行直接测试数据库连接,定位具体错误:

heroku run python -c "import psycopg2; import os; conn = psycopg2.connect(host=os.getenv('HOST'), port=os.getenv('PORT'), database=os.getenv('DATABASE'), user=os.getenv('USER'), password=os.getenv('PASSWORD'), sslmode=os.getenv('SSLMODE'), sslrootcert='root.crt')"

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 23:23:16