我有一个NodeJS应用程序,我正在使用Sequelize连接到Postgres数据库;在我的开发人员versión一切正常,但在我的生产版本后,从两台机器做一些调用得到以下错误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;
答案 0 :(得分:0)
您可能打开连接但未关闭它。打开的连接保持空闲状态,只是浪费了插槽。
如果你使用pgAdmin,你可以去工具 - > “服务器状态”菜单,查看这些待处理的连接。
你也可以试试这个来获得activity statistics:
SELECT * FROM pg_stat_activity;