本地主机中的节点 postgres ECONNREFUSED

Posted

技术标签:

【中文标题】本地主机中的节点 postgres ECONNREFUSED【英文标题】:Node postgres ECONNREFUSED in localhost 【发布时间】:2018-09-17 09:13:46 【问题描述】:

这个问题完全把我逼疯了。我花了几个月的时间,试图让一个简单的节点应用程序工作。我终于设法让一个应用程序在一个不错的服务器(Heroku)和 mysql 上工作。问题?服务器只接受 postgres。这是我的噩梦。我就是不能让它工作。搜索了几十个网站和问题,所有这些都与我相同的错误日志......但我就是不知道该怎么做。我在配置方面完全是白痴,我什至无法开始编写我的应用程序。

错误:连接 ECONNREFUSED 127.0.0.1:5432 在 Object._errnoException (util.js:1022:11) 在 _exceptionWithHostPort (util.js:1044:20) 在 TCPConnectWrap.afteeConnect [as oncomplete] (net.js:1198:14)

我的 server.js 开始

const pg = require('pg'); const connectionString = process.env.DATABASE_URL || 'postgres://myrole:12345@localhost:5432/mydb';

这里是错误。

var pool = new pg.Pool(); pool.connect().then(client =>

它在连接时崩溃。

我做了我所寻找的一切。我创建了具有所有权限的“myrole”登录角色,密码“12345”,以连接到“mydb”数据库。我打开了“pgAdmin4”应用程序。连接到“PostgreSQL 10”和“mydb”。我看到第一个连接到端口 3000。我在连接字符串中尝试了端口 3000。我在 Windows 上搜索了该服务。它正在运行。我只是做了一切,但没有任何效果......我安装并制作了 MySQL 数据库,以便在 2 小时内在本地运行。但是 Heroku 不接受 MySQL,我不想放任何信用卡。这里发生了什么?

【问题讨论】:

您是否可以使用具有相同凭据的 psql 手动连接到 postgres? 不要紧张,停下来思考和调查。 postgresql.conf 中的 port 是什么? listen_addresses 设置为什么? PostgreSQL 正在运行吗?你能看到它用netstat -a在端口监听吗? 【参考方案1】:

我遇到了同样的问题,我会把我的情况放在这里,希望能帮助别人。

我正在测试一些 AWS Lambda 函数,由于代码在容器中运行,并且容器有自己的 localhost,所以我的 postgres 连接失败,因为容器上没有运行 postgres 服务器。请记住,您机器的 localhost 与容器的不同,如果您的应用在容器内运行,则使用您的机器 IP 而不是 localhost。

【讨论】:

以上是关于本地主机中的节点 postgres ECONNREFUSED的主要内容,如果未能解决你的问题,请参考以下文章

在Gitlab CI中部署Helm图表时,如何将节点主机名修复太长时间

节点连接到本地主机中的 Xmpp 服务器

从本地节点服务器到Postgres DB的连接被拒绝

Postgres连接本地数据库出错-"连线被拒,请检查主机名称和埠号,并确定 postmaster 可以接受 TCP/IP 连线"

尝试访问本地主机中的数据库时如何解决“错误:服务器不支持 SSL 连接”?

sh 一个shell脚本,为本地托管的nat VM创建一个8节点nat网络,通过por提供ssh,mysql,postgres和其他Web服务