Postgres ECONNREFUSED,我的地址有什么问题吗?

问题描述 投票:0回答:1

我有一个云服务器(ubuntu 18.04),带有 NodeJS、postgresql、sequelize。我的服务器启动,但无法连接到数据库,我明白了 错误:连接ECONNREFUSED 192.168.0.2:5432

如果我运行 ss -tl

[TCP] (https://i.stack.imgur.com/YQV6s.png)

这是sequilize.js

export default new Sequelize(
    process.env.DB_NAME, 
    process.env.DB_USER, 
    process.env.DB_PASS, 
    {
        dialect: 'postgres',
        host: "127.0.0.1",
        port: 5432,
        define: {
            underscored: true
        },
        logging: false,
        timezone: 'Europe',
    }
)

我是 Linux 新手,抱歉,我很困惑。我尝试将sequilize中的主机切换到192.168.0.2,错误是相同的。我该如何解决这个问题?

node.js postgresql sequelize.js ubuntu-18.04
1个回答
1
投票

在这种情况下,尝试连接一些已知有效的工具总是一个好主意,以确保您确实可以从主机到达该 IP 上的该端口,并且数据库服务器响应并正常工作。

对于 Postgres,您可以使用一个名为

psql
的命令行工具:

psql -h 127.0.0.1 -p 5432 -U $DB_USER $DB_NAME

您可以使用任何其他可以连接到 Postgres 的 CLI 或 GUI 工具,但请确保它在与 Node 应用程序运行相同的主机上本地运行。

如果您无法以这种方式连接,那么您的 Node 应用程序也将无法连接。

正如 Freakish 在评论中已经注意到的那样,您的数据库可能不接受来自本地主机的连接。如果您确认确实如此,请检查配置,特别是:

listen_addresses

参见文档:

© www.soinside.com 2019 - 2024. All rights reserved.