我在Node.js上运行服务器,我做了很多MySQL查询,每秒大约1-3次查询,取决于流量。因此,我使用mysql
npm模块进行了池查询,我就是这样做的:
var mysql = require('mysql');
var pool = mysql.createPool({
host: ip,
multipleStatements: true,
user: '*********',
password: '*********',
database: '*********',
connectionLimit: 0,
maxListeners: 0
});
每当我想运行查询时,我都会运行此函数:
function do_query(query, callback) {
pool.getConnection(function(err, connection) {
if(err) {
console.log(err);
if(connection) {
connection.release();
}
} else {
connection.query(query, function(err, results, fields) {
connection.release();
return callback(err, results, fields);
});
}
});
}
几小时或几天后,我总是收到此错误
错误:ER_HOST_IS_BLOCKED:主持人' ******'由于许多连接错误而被阻止;使用' mysqladmin flush-hosts'取消阻止。
为什么在我将connectionLimit设置为"无限"时会被阻止?我没有正确释放连接吗?