Web App 数据库 ECONNRESET

Web App database ECONNRESET

我有一个 expressjs 应用程序托管在启用了 Always On 的 Azure Web 应用程序上。

我正在使用 bookshelfjs 连接到托管在 Azure 上另一个虚拟服务器中的 MySQL 数据库。

一段时间后,当我调用 Web 应用程序时出现以下错误,告诉我无法连接到数据库服务器:

select * from `member` where `name` = 'alvin' limit 1 -read ECONNRESET"

是否与expressjs超时问题有关?

根据 SO MySQL giving "read ECONNRESET" error after idle time on node.js server 上的类似问题,这似乎是 MySQL 连接问题。

正如答案所说:

MySQL does indeed prune idle connections.

请尝试在 Knex 的 MySQL 连接配置中添加 pool 设置。例如,

var knex = require('knex')({
  client: 'mysql',
  connection: {
    host     : '127.0.0.1',
    user     : 'your_database_user',
    password : 'your_database_password',
    database : 'myapp_test'
  },
  pool: {
    min: 0,
    max: 7
  }
});

更多信息请参考http://knexjs.org/#Installation-pooling