MySQL per impostazione predefinita accetta solo 100 connessioni simultanee max. Nel tuo caso stai creando ~1500, quindi l'errore che ottieni è normale. Puoi aumentare questo valore ma il problema qui è nel tuo codice.
Dovresti usare invece una piscina. Questo farà in modo che il nodo crei un pool di connessioni (penso che l'impostazione predefinita sia 10) e le consenta di essere condivise dalle tue query:
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();
});
});
}
Inoltre potresti prendere in considerazione l'utilizzo di una singola connessione e inserire tutto in una volta. Puoi vedere in questo rispondi come ottenerlo.