节点js(Express js)Mysql读取ECONNRESET错误

时间:2016-11-17 12:23:30

标签: mysql node.js

var express = require('express');
var mysql = require('mysql');
var connection = module.exports = mysql.createConnection({
  host: 'myhost.com',
  port:'3307',
  user: 'username',
  password: 'password',
  database: 'mydatabase'
});

connection.connect(function(err) {
  if (err){
    throw err;
  }
  else
  console.log('You are now connected...');
});

有时当我尝试连接数据库时,我会看到ECONNRESET错误。请帮忙。我尝试过很多东西,但似乎没什么用。

2 个答案:

答案 0 :(得分:1)

您可以在此答案中找到解决方案:https://stackoverflow.com/a/22906189/1790397

  1. MySQL确实修剪了空闲连接。有一个MySQL变量“wait_timeout”,用于设置超时前的秒数,默认为8小时。我们可以将默认值设置为远大于此值。使用显示变量,如'wait_timeout';查看超时设置并设置wait_timeout = 28800;改变它。
  2. 根据此问题,node-mysql在这些断开连接后不会修剪池连接。模块开发人员建议使用心跳来保持连接活动,例如调用SELECT 1;在一个间隔。他们还建议使用node-pool模块及其idleTimeoutMillis选项自动修剪空闲连接。

答案 1 :(得分:0)

您可以使用connection变量.timeout函数:

connection.timeout = 0;