gpt4 book ai didi

node.js - SequelizeConnectionError : FATAL: remaining connection slots are reserved for non-replication superuser connections

转载 作者:行者123 更新时间:2023-12-03 22:28:42 28 4
gpt4 key购买 nike

我有一个 NodeJS 应用程序,我正在使用 Sequelize 连接到 Postgres 数据库;在我的开发人员版本中,一切正常,但在我的生产版本中,在从两台机器上进行一些调用后,出现以下错误 SequelizeConnectionError: FATAL: remaining connection slots are reserved for non-replication superuser connections. 在许多问题中,解决方案是增加数据库中的 max_connections;实际上在 100 中有这个参数,但我不确定这是否是问题所在。

问题出在 Sequelize 配置中,也许我手动关闭了连接?

这是我的 config.json 文件

{
"development": {
"username": "pys-form",
"password": "pys-form",
"database": "PYS-FORM-COL",
"host": "127.0.0.1",
"dialect": "postgres"
},
"production": {
"username": "pys-form",
"password": "pys-form",
"database": "PYS-FORM-COL",
"host": "190.60.234.132",
"dialect": "postgres"
}
}

index.js 文件
var fs        = require("fs");
var path = require("path");
var Sequelize = require("sequelize");
var env = process.env.NODE_ENV || "production";
var config = require(__dirname + '/../config/config.json')[env];
var sequelize = new Sequelize(config.database, config.username, config.password, config);
var db = {};

fs
.readdirSync(__dirname)
.filter(function(file) {
return (file.indexOf(".") !== 0) && (file !== "index.js");
})
.forEach(function(file) {
var model = sequelize.import(path.join(__dirname, file));
db[model.name] = model;
});

Object.keys(db).forEach(function(modelName) {
if ("associate" in db[modelName]) {
db[modelName].associate(db);
}
});

db.sequelize = sequelize;
db.Sequelize = Sequelize;

module.exports = db;

最佳答案

您可能打开连接但没有关闭它。打开的连接保持空闲,只是浪费插槽。

如果您使用 pgAdmin,您可以转到 Tools -> Server Status 菜单并查看那些挂起的连接。

你也可以试试这个来获得 activity statistics :

SELECT * FROM pg_stat_activity;

关于node.js - SequelizeConnectionError : FATAL: remaining connection slots are reserved for non-replication superuser connections,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37353961/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com