我在Ubuntu 10.04 LTS VM上运行带有Node-Mysql的Node.js 4.1。然而,我遇到了一些奇怪的问题,而且我不确定是什么导致了它。
我偶尔无法连接到数据库,有时它工作正常。当我无法连接时,我在mysql端的连接中看到连接弹出窗口,用户为“unauthenticated”,状态为“从网络读取”,但几秒后它就会消失。 .connect()
回调永远不会触发,我不知道从哪里开始。
我正在使用从主机到vm的端口转发,22用于SSH,80用于http请求,但除此之外一切正常。 mysql上的主机显示为主机,而不是VM,尽管即使成功连接也是如此。
不确定重要性,但连接在VM上的TIME_WAIT中保持,并且本地地址:端口与MySQL不同,也用于成功连接。
答案 0 :(得分:1)
您使用的是最新版本(0.9.2)吗?如果是,则不再使用.connect()
。
https://github.com/felixge/node-mysql/wiki/Upgrading-to-0.9.2+
所以而不是:
var client = require('mysql').Client();
client.connect();
client.query('SELECT 1', function() {
});
你现在必须写:
var client = require('mysql').createClient();
client.query('SELECT 1', function() {
});