我使用的是node-mysql
和大多数查询。工作中。有些查询不起作用。我试过每个版本的Node (从0.5.)直到(5.6.0),我也尝试了(4.0)和(4.1),没有任何帮助。
我试着设法改变,但没有成功。我试图将sequence
文件更改为:this._idleTimeout = -1;
,但没有提供帮助。
我读过“问题”和“GitHub”,没有任何帮助。
我可以自己解决,但我需要更多的信息。超时时间在哪里,为什么?什么时候?这类信息是什么?超时是从哪里来的?
MYSQL_ERROR { [Error: Handshake inactivity timeout]
code: 'PROTOCOL_SEQUENCE_TIMEOUT', fatal: true,
timeout: 10000 }
发布于 2016-05-05 15:41:39
好的,超时来自Protocol.js文件行:162。如果签出节点-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
});
您还可以在(node_modules/mysql/lib/protocol/sequences/Sequence.js)文件Sequence.js中编辑超时。
this._timeout = 100000;
发布于 2019-10-16 17:15:03
对于部署在AWS
上并遇到此错误的人员,您需要更改数据库/集群和add an inbound rule
的安全组,其中source
是实例/s的安全组。
入站规则应如下所示:
Type: MySQL/Aurora
Protocol: TCP (default)
Port: 3306 (default)
Source: <security group of instance>
Description: <optional>
发布于 2019-03-29 14:35:45
如果您正在使用Amazon的服务,我可以通过更改安全设置中允许的IP地址或更改打开的连接端口来解决这个问题。
https://stackoverflow.com/questions/35553432
复制相似问题