【问题标题】:Node-MySQL (felixge) connection problemsNode-MySQL (felixge) 连接问题
【发布时间】:2011-07-01 13:31:14
【问题描述】:

我在 Ubuntu 10.04 LTS 虚拟机上运行带有 Node-Mysql 的 Node.js 4.1。但是,我遇到了一些奇怪的问题,我不确定是什么原因造成的。

我有时无法连接到数据库,但有时它工作正常。当我无法连接时,我会在 mysql 端的连接中看到连接弹出窗口,用户为“未经身份验证”,状态为“从网络读取”,但它在几秒钟后消失。 .connect() 回调永远不会触发,我不确定从这里去哪里。

我正在使用从主机到 vm 的端口转发,SSH 为 22,http 请求为 80,但除此之外一切正常。 mysql 上的主机显示为主机,而不是虚拟机,尽管即使成功连接也是如此。

不确定意义,但连接在 VM 上的 TIME_WAIT 中保持,并且本地地址:端口与 MySQL 的不同,对于成功的连接也是如此。

【问题讨论】:

  • 不是你的问题的答案,但为了提供更好的数据库连接,我使用了 node-mysql-native 插件。我没有使用他们的 createTCPConnection 方法,而是创建了自己的 TCP 套接字,手动包含他们的 SocketClient 库并调用 new SocketClient(my_socket);然后我可以自己处理套接字问题。

标签: mysql node.js


【解决方案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() {
});

【讨论】:

    猜你喜欢
    • 2013-03-25
    • 1970-01-01
    • 2018-01-08
    • 2018-09-18
    • 2014-01-10
    • 1970-01-01
    • 1970-01-01
    • 2012-11-21
    • 2010-09-23
    相关资源
    最近更新 更多