J'utilise node-mysql
et la plupart des requêtes fonctionnent correctement. Mais certaines requêtes ne fonctionnent pas. J'ai essayé toutes les versions de Node (de 0.5... à 5.6.0), j'ai également essayé 4.0 et 4.1 mais aucune n'a aidé.
J'ai essayé de le modifier manuellement, mais cela n'a pas fonctionné. J'ai essayé de changer le fichier sequence
en : this._idleTimeout = -1;
mais cela n'a pas aidé non plus.
J'ai lu le problème et d'autres informations sur GitHub, mais cela n'a pas aidé.
Je pourrais essayer de résoudre le problème moi-même, mais j'ai besoin de plus d'informations. Où se produit le délai d’attente ? Pourquoi? Quand est-ce arrivé? De quel type de message s'agit-il ? D'où vient le timeout ?
MYSQL_ERROR { [Erreur : délai d'inactivité de la poignée de main] code : 'PROTOCOL_SEQUENCE_TIMEOUT', fatal : vrai, délai d'attente : 10 000 }
Pour le
AWS
上部署并遇到此错误的用户,您需要对数据库/集群的安全组进行更改,添加入站规则
,其中源
est le groupe de sécuritéde l'instance.Les règles entrantes devraient ressembler à ceci :
D'accord, le délai d'attente provient de la ligne 162 du fichier Protocol.js. Si vous regardez node-mysql, vous verrez que la variable interrogée est "timeout". Si vous définissez le délai d'attente sur une valeur beaucoup plus élevée que la valeur par défaut de 10 000, l'erreur devrait disparaître. Un exemple est
Vous pouvez également modifier le délai d'attente dans le fichier Sequence.js (node_modules/mysql/lib/protocol/sequences/Sequence.js)