在Render部署Golang应用时遭遇Connection Refused错误
Render部署Golang应用PostgreSQL连接被拒绝的解决方案
错误根源
你的应用尝试连接127.0.0.1:6500时被拒绝,核心问题是环境变量配置错误:在Render平台上,应用服务与PostgreSQL数据库是独立运行的实例,127.0.0.1只能访问应用自身容器内的进程,无法连接到外部数据库。
修复步骤
替换数据库主机地址
进入Render控制台的PostgreSQL服务页面,在「Connection Details」中找到正确的主机地址(优先使用内部地址,速度更快),将环境变量POSTGRES_HOST的值从127.0.0.1替换为该地址(格式类似dpg-xxxxxxxxx.us-east-1.aws.neon.tech)。修正端口配置
Render PostgreSQL默认端口为5432,你当前设置的6500不符合默认配置,检查数据库实例的端口信息,更新POSTGRES_PORT为正确值。核对数据库认证信息
确保POSTGRES_USER、POSTGRES_PASSWORD、POSTGRES_DB与Render数据库实例的「Connection Details」中的信息完全一致。重启应用服务
修改环境变量后,在Render应用控制台点击「Restart Service」,让新配置生效。
额外检查点
- 确认PostgreSQL实例状态为「Available」,没有处于初始化或停机状态;
- 如果使用内部连接,确保应用服务与数据库在同一Render区域,且已开启内部网络访问权限。
你提供的错误日志
Jul 10 02:56:40 AM [error] failed to initialize database, got error failed to connect to `host=127.0.0.1 user=postgres database=easytickets`: dial error (dial tcp 127.0.0.1:6500: connect: connection refused) Jul 10 02:56:56 AM ==> Using Node version 14.17.0 (default) Jul 10 02:56:56 AM ==> Docs on specifying a Node version: https://render.com/docs/node-version Jul 10 02:57:00 AM ==> Starting service with './main' Jul 10 02:57:00 AM Jul 10 02:57:00 AM 2023/07/10 01:57:00 Failed To Connect To The Database Jul 10 02:57:00 AM 2023/07/10 01:57:00 /opt/render/project/go/src/github.com/E-phraim/jeje-tickets/initializers/connectDB.go:1`
你当前的环境变量配置
POSTGRES_HOST=127.0.0.1 POSTGRES_USER=postgres POSTGRES_PASSWORD=******* POSTGRES_DB=easytickets POSTGRES_PORT=6500 PORT=8000 CLIENT_ORIGIN=http://localhost:3000 EMAIL_FROM=****** SMTP_HOST=******* SMTP_USER=********* SMTP_PASS=********* SMTP_PORT=587
内容的提问来源于stack exchange,提问作者Kodeforce
相关产品推荐
相关产品推荐

