RPI + NodeJS, ECONNRESET MYSQL
Adri77220
Messages postés
6
Date d'inscription
Statut
Membre
Dernière intervention
-
Utilisateur anonyme -
Utilisateur anonyme -
Bonjour,
J'ai créé un bot discord avec une base de données MYSQL et j'ai hébergé mon bot sur mon raspberry pi
le problème est que le Bot après des heures d'activation, il s'arrête et envoie une erreur mais je ne comprends pas pourquoi car l'erreur dit que le Bot n'est pas connecté à la base de données alors qu'au démarrage il était bien connecté
Je pense que la base de données après quelques heures d'inactivité elle se met en veille mais je ne comprends pas pourquoi
Voici mon erreur
events.js:291
throw er; // Unhandled 'error' event
^
Error: read ECONNRESET
at TCP.onStreamRead (internal/stream_base_commons.js:209:20)
Emitted 'error' event on Connection instance at:
at Connection._handleProtocolError (/home/pi/Desktop/Glow-Bot/Glow-Bot.js/node_modules/mysql/lib/Connection.js:423:8)
at Protocol.emit (events.js:314:20)
at Protocol._delegateError (/home/pi/Desktop/Glow-Bot/Glow-Bot.js/node_modules/mysql/lib/protocol/Protocol.js:398:10)
at Protocol.handleNetworkError (/home/pi/Desktop/Glow-Bot/Glow-Bot.js/node_modules/mysql/lib/protocol/Protocol.js:371:10)
at Connection._handleNetworkError (/home/pi/Desktop/Glow-Bot/Glow-Bot.js/node_modules/mysql/lib/Connection.js:418:18)
at Socket.emit (events.js:314:20)
at emitErrorNT (internal/streams/destroy.js:92:8)
at emitErrorAndCloseNT (internal/streams/destroy.js:60:3)
at processTicksAndRejections (internal/process/task_queues.js:84:21) {
errno: 'ECONNRESET',
code: 'ECONNRESET',
syscall: 'read',
fatal: true
}
J'ai créé un bot discord avec une base de données MYSQL et j'ai hébergé mon bot sur mon raspberry pi
le problème est que le Bot après des heures d'activation, il s'arrête et envoie une erreur mais je ne comprends pas pourquoi car l'erreur dit que le Bot n'est pas connecté à la base de données alors qu'au démarrage il était bien connecté
Je pense que la base de données après quelques heures d'inactivité elle se met en veille mais je ne comprends pas pourquoi
Voici mon erreur
events.js:291
throw er; // Unhandled 'error' event
^
Error: read ECONNRESET
at TCP.onStreamRead (internal/stream_base_commons.js:209:20)
Emitted 'error' event on Connection instance at:
at Connection._handleProtocolError (/home/pi/Desktop/Glow-Bot/Glow-Bot.js/node_modules/mysql/lib/Connection.js:423:8)
at Protocol.emit (events.js:314:20)
at Protocol._delegateError (/home/pi/Desktop/Glow-Bot/Glow-Bot.js/node_modules/mysql/lib/protocol/Protocol.js:398:10)
at Protocol.handleNetworkError (/home/pi/Desktop/Glow-Bot/Glow-Bot.js/node_modules/mysql/lib/protocol/Protocol.js:371:10)
at Connection._handleNetworkError (/home/pi/Desktop/Glow-Bot/Glow-Bot.js/node_modules/mysql/lib/Connection.js:418:18)
at Socket.emit (events.js:314:20)
at emitErrorNT (internal/streams/destroy.js:92:8)
at emitErrorAndCloseNT (internal/streams/destroy.js:60:3)
at processTicksAndRejections (internal/process/task_queues.js:84:21) {
errno: 'ECONNRESET',
code: 'ECONNRESET',
syscall: 'read',
fatal: true
}
5 réponses
Bonjour, j'ai redirigé la discussion dans la catégorie MySQL.
Concernant ton problème, après avoir fait quelques recherches, je suis tombé sur un message du forum StackOverflow :
https://stackoverflow.com/questions/22900931/mysql-giving-read-econnreset-error-after-idle-time-on-node-js-server/22906189#22906189
Pour ma part j'opterais pour la 1ère solution, qui consiste à envoyer une requête basique. Il faudra déterminer le délai avant le kick de MySQL, pour "faire du bruit" avant.
Concernant ton problème, après avoir fait quelques recherches, je suis tombé sur un message du forum StackOverflow :
- MySQL "tue" les connexions inactives. Par exemple si ton bot est resté longtemps sans faire une requête, il sera déconnecté. Il est suggéré d'envoyer régulièrement une requête basique pour montrer à MySQL que tu es toujours là. Par exemple, faire un
SELECT 1;
. - Il est également suggéré d'augmenter le délai avant la déconnexion automatique.
https://stackoverflow.com/questions/22900931/mysql-giving-read-econnreset-error-after-idle-time-on-node-js-server/22906189#22906189
Pour ma part j'opterais pour la 1ère solution, qui consiste à envoyer une requête basique. Il faudra déterminer le délai avant le kick de MySQL, pour "faire du bruit" avant.