解决node-mysql初始化错误? [英] Solving node-mysql initialization errors?

查看:68
本文介绍了解决node-mysql初始化错误?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试使用可以在此处找到的 node-mysql 模块.我以前使用过它没有任何问题,但在最近的一个项目中遇到了一个奇怪的问题,它永远无法连接到数据库.我知道我的登录凭据是正确的,因为它们通过普通的 MySQL 命令行工作.

I am attempting to use the node-mysql module which can be found here. I've used this before without any issue but on a recent project came into a strange issue of it never being able to connect to the database. I know my login credentials are correct as they work via normal MySQL command line.

但是,当 node-mysql 模块尝试连接时,我总是会收到错误消息.这是我到目前为止的代码,启用了 debugging.

However, I will always receive errors when the node-mysql module attempts to connect. This is the code I have so far, with debugging enabled.

var connection = mysql.createConnection({
    host     : 'localhost',
    user     : 'root',
    password : 'password',
    database : 'Coachletic',
    pool     : { maxConnections: 50, maxIdleTime: 30},
    debug    : true
});

connection.connect(function(err){
    if(!err) {
        console.log("MySQL Database is connected.");
    } else {
        console.log(err);
        console.log("Error connecting to MySQL Database.");  
    }
});

global.connection = connection;

这是控制台的输出:

<-- HandshakeInitializationPacket
HandshakeInitializationPacket {
  protocolVersion: 10,
  serverVersion: '5.6.19-0ubuntu0.14.04.1',
  threadId: 64,
  scrambleBuff1: <Buffer 65 3f 48 2e 4d 78 38 49>,
  filler1: <Buffer 00>,
  serverCapabilities1: 63487,
  serverLanguage: 8,
  serverStatus: 2,
  serverCapabilities2: 32895,
  scrambleLength: 21,
  filler2: <Buffer 00 00 00 00 00 00 00 00 00 00>,
  scrambleBuff2: <Buffer 47 68 54 4e 6b 4e 25 6a 6a 54 46 42>,
  filler3: <Buffer 00>,
  pluginData: 'mysql_native_password',
  protocol41: true }

--> ClientAuthenticationPacket
ClientAuthenticationPacket {
  clientFlags: 455631,
  maxPacketSize: 0,
  charsetNumber: 33,
  filler: undefined,
  user: 'root',
  scrambleBuff: <Buffer 40 de 4c 94 3b c4 6f 15 0d 1c 49 12 04 46 af 64 d9 4d 41 76>,
  database: 'Coachletic',
  protocol41: true }

{ [Error: Handshake inactivity timeout]
  code: 'PROTOCOL_SEQUENCE_TIMEOUT',
  fatal: true,
  timeout: undefined }
Error connecting to MySQL Database.

尝试寻找此错误的解决方案,但没有找到任何有用的东西.

Tried searching for solutions for this error but did not come up with anything useful.

推荐答案

在进行更多挖掘之后,这似乎是与 Node 4.2.0 相关的问题.这是参考线程:https://github.com/felixge/node-mysql/issues/1236

After doing some more digging it appears that this is an issue associated with Node 4.2.0. This is the reference thread: https://github.com/felixge/node-mysql/issues/1236

修复涉及将 lib/protocol/sequences/Sequence.js 中的 this._idleTimeoutundefined 更改为 -1 文件.

The fix involved changing this._idleTimeout to -1 from undefined in the lib/protocol/sequences/Sequence.js file.

这篇关于解决node-mysql初始化错误?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆