数据库
首页 > 数据库> > 错误:Node.js MYSQL模块中的握手不活动超时

错误: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