错误:Node.js MYSQL模块中握手不活动超时

我正在使用node-mysql和大部分查询。 加工。 一些查询不起作用。 我尝试了每个版本的节点(从0.5 …)直到(5.6.0),我也试过(4.0)和(4.1),没有什么帮助。

我试图改变,并没有工作。 我试图改变sequence文件: this._idleTimeout = -1; 并没有帮助。

我读了这些问题和GitHub,没有任何帮助。

我可以尝试自己解决,但我需要更多的信息。 超时在哪里,为什么? 什么时候? 这种types的信息是什么? 超时是从哪里来的?

 MYSQL_ERROR { [Error: Handshake inactivity timeout] code: 'PROTOCOL_SEQUENCE_TIMEOUT', fatal: true, timeout: 10000 } 

我会奖励100-150分,奖励最好的答案,我可以做(需要等待2天)。 但即使你以前回答,你也会得到奖品。

好的,超时来自Protocol.js文件行:162。 如果你checkout node-mysql,你会发现它是一个查询variables“timeout”。 如果将超时设置为大于10000的默认值,那么错误应该消失。 一个例子是

 pool = require('mysql').createPool({ connectionLimit : 1000, connectTimeout : 60 * 60 * 1000, aquireTimeout : 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 }); 

您还可以编辑Sequence.js文件中的超时(node_modules / mysql / lib / protocol / sequence / Sequence.js)

this._timeout = 100000;