我正在使用node-mysql和大多数查询。加工。一些查询不起作用。我尝试了Node的每个版本(从0.5 …到(5.6.0),也尝试了(4.0)和(4.1),没有任何帮助。
node-mysql
我试图按性别进行更改,但没有工作。我试图将sequence文件更改为:this._idleTimeout = -1;并没有帮助。
sequence
this._idleTimeout = -1;
我阅读了这些问题和GitHub,但没有任何帮助。
我可以尝试自己修复它,但是我需要更多信息。超时在哪里,为什么?什么时候?这是什么类型的消息?超时从哪里来?
MYSQL_ERROR { [Error: Handshake inactivity timeout] code: 'PROTOCOL_SEQUENCE_TIMEOUT', fatal: true, timeout: 10000 }
好的,超时来自Protocol.js文件行:162。如果您检出node- mysql,您将看到它是查询的变量“超时”。如果您将超时设置为远高于默认值10000的值,则错误应消失。一个例子是
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 });
您也可以在Sequence.js文件(node_modules / mysql / lib / protocol / sequence / Sequence.js)中编辑超时
this._timeout = 100000;