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

Heroku上的Laravel能否连接Awardspace数据库?报连接被拒错误

问题场景

在Heroku的环境变量文件中填写Awardspace提供的数据库相关信息,尝试将部署在Heroku上的Laravel项目与Awardspace数据库建立连接时,抛出如下错误:
SQLSTATE[HY000] [2002] Connection refused
对应报错截图:
数据库连接报错截图

排查与解决步骤

SQLSTATE[HY000] [2002] Connection refused属于网络层连接失败错误,和数据库账号密码校验无关(账号密码错误会返回Access denied类提示),按以下优先级逐一排查:

  • 先确认Awardspace数据库是否开放外部远程访问权限
    绝大多数免费虚拟主机提供的共享数据库默认仅允许主机自身内网IP访问,直接拦截所有外部来源(包括Heroku的服务器节点)的数据库连接请求,这是该报错最常见的诱因。如果是这个限制导致的,要么在Awardspace数据库管理面板找到远程访问白名单配置项,将Heroku的出口IP段加入允许列表;要么直接更换支持公网远程连接的数据库服务,不要使用Awardspace自带的共享数据库。
  • 核对所有数据库连接参数
    • 数据库主机地址不能填localhost或127.0.0.1,必须填写Awardspace官方指定的远程数据库主机地址,通常是类似dbXXX.awardspace.net的专属域名
    • 不要默认使用3306作为MySQL端口,到Awardspace控制台确认对外提供数据库服务的实际端口,部分主机商会将公网数据库端口修改为非默认值
    • 逐字核对数据库名、数据库用户名、连接密码,确保和Awardspace面板生成的信息完全一致,不要带多余空格
  • 配置生效检查
    改完Heroku环境变量后必须重启dyno才能加载新配置,在项目根目录执行以下命令:
    heroku restart
    
    重启后可执行heroku config查看已写入的环境变量,确认没有拼写错误。
  • 清除Laravel配置缓存
    环境变量确认无误后,执行命令清除Laravel的缓存配置,避免旧配置干扰连接:
    heroku run php artisan config:clear
    heroku run php artisan cache:clear
    
  • 连通性测试
    以上步骤做完仍报错的话,直接在Heroku容器内测试数据库端口连通性:
    heroku run bash
    telnet 你的数据库主机地址 你的数据库端口
    
    如果telnet直接返回连接失败,说明是Awardspace侧防火墙或权限规则拦截了连接,直接联系Awardspace客服确认公网连接数据库的要求即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 02:18:03