我有一个云服务器(ubuntu 18.04),带有 NodeJS、postgresql、sequelize。我的服务器启动,但无法连接到数据库,我明白了 错误:连接ECONNREFUSED 192.168.0.2:5432
如果我运行 ss -tl
这是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,错误是相同的。我该如何解决这个问题?
在这种情况下,尝试连接一些已知有效的工具总是一个好主意,以确保您确实可以从主机到达该 IP 上的该端口,并且数据库服务器响应并正常工作。
对于 Postgres,您可以使用一个名为
psql
的命令行工具:
psql -h 127.0.0.1 -p 5432 -U $DB_USER $DB_NAME
您可以使用任何其他可以连接到 Postgres 的 CLI 或 GUI 工具,但请确保它在与 Node 应用程序运行相同的主机上本地运行。
如果您无法以这种方式连接,那么您的 Node 应用程序也将无法连接。
正如 Freakish 在评论中已经注意到的那样,您的数据库可能不接受来自本地主机的连接。如果您确认确实如此,请检查配置,特别是:
listen_addresses
参见文档: