Résolution de l'erreur de délai d'expiration d'inactivité de négociation dans le module MYSQL de Node.js
P粉205475538
P粉205475538 2023-08-22 16:34:16
0
2
409

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 }


P粉205475538
P粉205475538

répondre à tous (2)
P粉547420474

Pour leAWS上部署并遇到此错误的用户,您需要对数据库/集群的安全组进行更改,添加入站规则,其中est le groupe de sécuritéde l'instance.

Les règles entrantes devraient ressembler à ceci :

类型:MySQL/Aurora 协议:TCP(默认) 端口:3306(默认) 源:<实例的安全组> 描述:<可选>
    P粉155128211

    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

    pool = require('mysql').createPool({ connectionLimit : 1000, connectTimeout : 60 * 60 * 1000, acquireTimeout : 60 * 60 * 1000, timeout : 60 * 60 * 1000, host : process.env.DB_HOST, user : process.env.DB_USERNAME, password : process.env.DB_PASSWORD, database : process.env.DB_DATABASE });

    Vous pouvez également modifier le délai d'attente dans le fichier Sequence.js (node_modules/mysql/lib/protocol/sequences/Sequence.js)

    this._timeout = 100000;
      Derniers téléchargements
      Plus>
      effets Web
      Code source du site Web
      Matériel du site Web
      Modèle frontal
      À propos de nous Clause de non-responsabilité Sitemap
      Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!