Nodejs mysql - PROTOCOL_SEQUENCE_TIMEOUT - 如何正确关闭连接

时间:2016-01-25 21:28:56

标签: mysql node.js heroku connection node-mysql

我正在尝试使用felixge中的nodejs-mysql模块。我需要做的是进行一次性查询,获得结果并结束连接。

正如您所见,我设置了连接,查询和结果,我尝试结束连接。现在问题是虽然我发送了一个ComQuitPacket它没有正确断开连接并等待数据库连接超时。顺便说一下,数据是正确接收的。

我在数据库上运行SHOW FULL PROCESSLIST但是在收到数据后没有显示连接。

我是以错误的方式结束连接吗?我也尝试删除回调而不是结束响应,但没有。

现在已经在github https://github.com/felixge/node-mysql/issues/1223

中关闭了票证

顺便说一下,我正在使用Heroku的ClearDB MySQL :: Database! 我也在使用node v5.4.0

var connection = mysql.createConnection({
 debug: true,
 host: enhancedWidgetModel.dataSource.mysql.host,
 user: enhancedWidgetModel.dataSource.mysql.username,
 password: enhancedWidgetModel.dataSource.mysql.password,
 database: enhancedWidgetModel.dataSource.mysql.database
})

  connection.query(enhancedWidgetModel.query, function (err, rows, fields) {
    connection.end(function (err) {
      if (err) {
        console.log(err)
      } else {
        console.log('ended')
      }
    })
    if (err) {
      console.log(err)
      callback({
        data: null,
        msg: 'error',
        code: 'error'
      })
    } else if (rows) {
      callback({
        data: rows,
        msg: 'acknowledged',
        code: 'success'
      })
    }
  })


<-- EofPacket
EofPacket {
  fieldCount: 254,
  warningCount: 0,
  serverStatus: 34,
  protocol41: true }

--> ComQuitPacket
ComQuitPacket { command: 1 }

{ [Error: Quit inactivity timeout]
  code: 'PROTOCOL_SEQUENCE_TIMEOUT',
  fatal: true,
  timeout: 30000 }

提出了github repo:https://github.com/felixge/node-mysql/issues/1334

的问题

0 个答案:

没有答案