MySQL por padrão só aceita 100 conexões simultâneas no máximo. No seu caso, você está criando ~ 1500, então o erro que você recebe é normal. Você pode aumentar esse valor, mas o problema aqui está no seu código.
Você deve usar uma piscina em vez disso. Isso fará com que o node crie um pool de conexões (acho que o padrão é 10) e permitirá que elas sejam compartilhadas por suas consultas:
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();
});
});
}
Além disso, você pode querer considerar o uso de uma única conexão e inserir tudo de uma vez. Você pode ver neste responder como conseguir isso.