问题描述
我正在尝试使用可以在此处找到的 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._idleTimeout
从 undefined
更改为 -1
文件.
The fix involved changing this._idleTimeout
to -1
from undefined
in the lib/protocol/sequences/Sequence.js
file.
这篇关于解决node-mysql初始化错误?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!