首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >错误: Node.js MYSQL模块中握手不活动超时

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

Stack Overflow用户
提问于 2016-02-22 12:16:50
回答 7查看 67.2K关注 0票数 39

我使用的是node-mysql和大多数查询。工作中。有些查询不起作用。我试过每个版本的Node (从0.5.)直到(5.6.0),我也尝试了(4.0)和(4.1),没有任何帮助。

我试着设法改变,但没有成功。我试图将sequence文件更改为:this._idleTimeout = -1;,但没有提供帮助。

我读过“问题”和“GitHub”,没有任何帮助。

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

代码语言:javascript
运行
复制
MYSQL_ERROR     { [Error: Handshake inactivity timeout]  
code: 'PROTOCOL_SEQUENCE_TIMEOUT',   fatal: true,   
timeout: 10000 }  
EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2016-05-05 15:41:39

好的,超时来自Protocol.js文件行:162。如果签出节点-mysql,您将看到它是查询的一个变量“超时值”。如果将超时设置为比默认值10000高得多的值,那么错误就会消失。一个例子是

代码语言:javascript
运行
复制
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
});

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

代码语言:javascript
运行
复制
this._timeout  = 100000;
票数 49
EN

Stack Overflow用户

发布于 2019-10-16 17:15:03

对于部署在AWS上并遇到此错误的人员,您需要更改数据库/集群和add an inbound rule的安全组,其中source是实例/s的安全组。

入站规则应如下所示:

代码语言:javascript
运行
复制
Type: MySQL/Aurora
Protocol: TCP (default)
Port: 3306 (default)
Source: <security group of instance>
Description: <optional>
票数 19
EN

Stack Overflow用户

发布于 2019-03-29 14:35:45

如果您正在使用Amazon的服务,我可以通过更改安全设置中允许的IP地址或更改打开的连接端口来解决这个问题。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35553432

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档