Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/444.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript ER_CON_COUNT_错误:节点mysql中的连接太多错误_Javascript_Mysql_Node.js - Fatal编程技术网

Javascript ER_CON_COUNT_错误:节点mysql中的连接太多错误

Javascript ER_CON_COUNT_错误:节点mysql中的连接太多错误,javascript,mysql,node.js,Javascript,Mysql,Node.js,我是一个节点初学者。下面是我试图使用节点mysql执行的代码,但它总是给我这个错误: error connecting: Error: ER_CON_COUNT_ERROR: Too many connections ::代码:: var size = item.length;// size is ~1500 for (var i=0; i<size;i++) { var connection = mysql.createConnection({ host

我是一个节点初学者。下面是我试图使用节点mysql执行的代码,但它总是给我这个错误:

error connecting: Error: ER_CON_COUNT_ERROR: Too many connections
::代码::

var size = item.length;// size is ~1500
for (var i=0; i<size;i++) {
    var connection = mysql.createConnection({
        host     : 'xxx.xxx.xxx.xxx',
        database : 'mydb',
        user     : 'test',
        password : 'test'
    });

    connection.connect(function(err, callback) {
        if (err) {
            console.error('error connecting: ' + err.stack);
            return;
        }
    });

    var entry = {
        id: item[i],
        time_created: Math.floor(Date.now() / 1000),
        time_created: Math.floor(Date.now() / 1000),
        price_range: 0
    };


    var query = connection.query('INSERT INTO mytable SET ?', entry, function(err, result, callback) {
        if(err) {
            console.log(err.message);
        }
    });

    connection.end(function(err) {
        if(err) {
            console.log(err.message);
        }
    });
}
var size=item.length;//尺寸约1500

for(var i=0;i首先,插入1500个项目不需要1500个连接。从for循环中删除该代码

大概是这样的:

var size = item.length;// size is ~1500
var connection = mysql.createConnection({
    host     : 'xxx.xxx.xxx.xxx',
    database : 'mydb',
    user     : 'test',
    password : 'test'
});

connection.connect(function(err, callback) {
    if (err) {
        console.error('error connecting: ' + err.stack);
        return;
    }
});

connection.end(function(err) {
    if(err) {
        console.log(err.message);
    }
});

for (var i=0; i<size;i++) {
    var entry = {
        id: item[i],
        time_created: Math.floor(Date.now() / 1000),
        time_created: Math.floor(Date.now() / 1000),
        price_range: 0
    };


    var query = connection.query('INSERT INTO mytable SET ?', entry, function(err, result, callback) {
       if(err) {
          console.log(err.message);
       }
    });
};
var size=item.length;//大小为~1500
var connection=mysql.createConnection({
主持人:“xxx.xxx.xxx.xxx”,
数据库:“mydb”,
用户:“测试”,
密码:“测试”
});
connection.connect(函数(err,回调){
如果(错误){
console.error('连接错误:'+err.stack);
返回;
}
});
connection.end(函数(err){
如果(错误){
控制台日志(错误消息);
}
});

for(var i=0;iMySQL默认情况下最多只接受100个同时连接。在您的示例中,您正在创建~1500个连接,因此您得到的错误是正常的。您可以增加此值,但问题出在您的代码中

您应该使用一个池。这将使node创建一个连接池(我认为默认值为10),并让您的查询共享它们:

    var mysql = require('mysql');
    var pool  = mysql.createPool({
        host     : 'xxx.xxx.xxx.xxx',
        database : 'mydb',
        user     : 'test',
        password : 'test'
    });
    for (var i=0; i<size;i++) {
        pool.getConnection(function(err, connection) {
          connection.query( 'INSERT INTO ...', function(err, rows) {
            connection.release();
          });
        });
    }
var mysql=require('mysql'); var pool=mysql.createPool({ 主持人:“xxx.xxx.xxx.xxx”, 数据库:“mydb”, 用户:“测试”, 密码:“测试” }); 对于(var i=0;i