错误:Node.js MYSQL模块中的握手不活动超时
作者:互联网
我正在使用node-mysql和大多数查询.工作.一些查询不起作用.
我尝试了每个版本的Node(从0.5 ……)到(5.6.0),我也尝试过(4.0)和(4.1),没有任何帮助.
我试图改变,并没有奏效.我试图将序列文件更改为: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;
标签:mysql,node-js,node-mysql 来源: https://codeday.me/bug/20191007/1866540.html