Después de buscar durante mucho tiempo con respecto a este error y realmente no puedo descubrir cómo manejar este error en mi proyecto. Necesito un poco de ayuda de usted :).
Tengo el problema, que mi Pantalla con mi Node-APP me da error despues de algunas horas (no se cuantas horas pero mi presentimiento me dice que no siempre es la misma hora)
Te daré mi error a continuación. ¿Alguien sabe cómo arreglar esto? Ya probé con un intervalo de seleccionar todo desde una tabla corta, para restablecer la conexión a la base de datos, por lo que la conexión no se cerrará, porque siempre habrá (cada 30 minutos) una llamada corta a la base de datos.
Además, después de recibir el error y reiniciar la aplicación, todo funciona bien. Vi que es un problema de tiempo de inactividad, pero no encontré ninguna forma de resolver este problema por mí. Así es como creo la conexión a mi base de datos.
var con = mysql.createConnection({ host: process.env.DATABASE_HOST, user: process.env.DATABASE_USER, password: process.env.DATABASE_PASSWORD, database: process.env.DATABASE }); con.connect(function(err) { if (err) throw err; console.log("Connected to Database!"); });¡Muchas gracias por adelantado!
Saludos cordiales
El error:
node:events:371 throw er; // Unhandled 'error' event ^ Error: read ECONNRESET at TCP.onStreamRead (node:internal/stream_base_commons:211:20) Emitted 'error' event on Connection instance at: at Connection._handleProtocolError (/var/www/xxx/xxx/node_modules/mysql/lib/Connection.js:423:8) at Protocol.emit (node:events:394:28) at Protocol._delegateError (/var/www/xxx/xxx/node_modules/mysql/lib/protocol/Protocol.js:398:10) at Protocol.handleNetworkError (/var/www/xxx/xxx/node_modules/mysql/lib/protocol/Protocol.js:371:10) at Connection._handleNetworkError (/var/www/xxx/xxx/node_modules/mysql/lib/Connection.js:418:18) at Socket.emit (node:events:394:28) at emitErrorNT (node:internal/streams/destroy:157:8) at emitErrorCloseNT (node:internal/streams/destroy:122:3) at processTicksAndRejections (node:internal/process/task_queues:83:21) { errno: -104, code: 'ECONNRESET', syscall: 'read', fatal: true }Y de nuevo GRACIAS!!! :)
Creo que se debe a las conexiones DB multipale
Use createPool en lugar de createConnection y profane connectionLimit, adquieraTimeout en milisegundos para que la conexión se cierre automáticamente después de este tiempo
var mysql = require('mysql'); var pool = mysql.createPool({ connectionLimit : 10, acquireTimeout : 10000 host : 'example.org', user : 'bob', password : 'secret', database : 'my_db' }); pool.query('SELECT 1 + 1 AS solution', function (error, results, fields) { if (error) throw error; console.log('The solution is: ', results[0].solution); });