用Egg开发项目,某天突然报错:nodejs.PROTOCOL_SEQUENCE_TIMEOUTError: Handshake inactivity timeout。node版本没有改变,代码也没改动。
研究了一下,发现是使用egg-mysql查询,文件里的查询超时导致的。将将超时设置为远高于默认值 10000,错误就会消失。
直接在config.default.js文件里对mysql进行配置
config.mysql = {
// 单数据库信息配置
client: {
// host
host: '***',
// 端口号
port: '3306',
// 用户名
user: 'root',
// 密码
password: '***',
// 数据库名
database: '***',
charset: 'utf8mb4',
connectionLimit: 1000,
connectTimeout: 60 * 60 * 1000,
acquireTimeout: 60 * 60 * 1000,
timeout: 60 * 60 * 1000,
},
// 是否加载到 app 上,默认开启
app: true,
// 是否加载到 agent 上,默认关闭
agent: false,
};
这样就可以了,其实是研究了一下node里的报错解决的,做一下日常记录。