ER_CON_COUNT_ERROR:连接过多mysql.pool.query

时间:2019-01-28 14:04:07

标签: javascript mysql node.js

我已经用Node.js和mysql创建了一个api。我使用的是来自android的此api,但在该部分中没有问题。

经过多次调用,我收到“经典”错误ER_CON_COUNT_ERROR: Too many connections,但我仅使用池res.locals.pool.query的调用,据我所知,调用pool.query自动关闭连接到服务器。

因此,我在查看正在获取的_allConnections : {1}代码时添加了调试信息,以检查连接等的值,因为在我的代码中,我不使用其他任何东西来拥有多个打开的连接,但是经过了几个小时_allConnections变成0,我得到错误提示了吗?

我不是JS开发人员,所以我不确定自己做错了什么,但对我来说似乎还可以。

db.controller.js

var dbConfig = {
    host: '*.*.*.*',
    user: '********',
    password: '*********',
    database: '*********',
    acquireTimeout: 1000000,
    queueLimit : 0,
    connectionLimit : 5
}

module.exports.initDB = function (req, res, next) {
    res.locals = { 
        pool: mysql.createPool(dbConfig)
    };
    next();
};

apiCall

res.locals.pool.query("QUERY HERE", req.query.param_here, function (error, results) {
    console.debug("\x1b[33m%s################### start connection info ###################");
    console.debug("connectionLimit : {" + res.locals.pool.config.connectionLimit + "} ");
    console.debug("_freeConnections : {" + res.locals.pool._freeConnections.length + "} ");
    console.debug("_allConnections : {" + res.locals.pool._allConnections.length + "} ");
    console.debug("_acquiringConnections : {" + res.locals.pool._acquiringConnections.length + "} ");
    console.debug("################### end connection info ###################\x1b[0m");
    global.handleResponse("call", res, error, results)
});

0 个答案:

没有答案