0

无法从 Nodejs 应用程序连接 MySql 服务器

环境:

安装在 windows - 7 中的 MySql 服务器。

安装在 Windows - 7 中的 Oracle Virtual Box Oracle 虚拟盒包含 nodejs 应用程序和相关包。

注意:Virtual box 没有 MySql 服务器。

我正在尝试从我的 nodejs 应用程序连接 mySql 服务器(在 windows-7 中可用)。在 Oracle Virtual box(Linux) 中运行的 nodejs 应用程序

运行 nodejs 应用程序时收到以下错误消息。

错误信息:events.j2:72 throw er; //未处理的“错误”事件

错误:在 errnoException(net.js:901:11) 处连接 ECONNREFUSED

4

2 回答 2

2

很难回答这个问题,因为描述非常混乱。但是,我认为可能是 mysql 可能仅绑定到环回接口。您应该检查 my.cnf 并设置

bind-address=0.0.0.0 

或类似的。

于 2013-07-03T09:35:43.070 回答
1

您在这里有很多选择。

如果您真的希望在 Windows 上使用 MySQL,您有两个单独的选项:

  1. 您可以在 Windows 上安装 nodejs 并让它在不使用 VirtualBox 的情况下访问 MySQL。
  2. 您可以使用 VirtualBox 设置一个虚拟网络,并让您的 nodejs 应用程序通过此虚拟网络连接到您在 Windows 上安装的 MySQL。这种配置可能很烦人,但它是可行的。

就个人而言,我会避免上述两种途径。相反,我会在 Linux VM 上安装 MySQL。这将提供许多好处,例如您的整个应用程序被沙盒化。此外,您不必处理愚蠢的虚拟网络配置,因为您的 nodejs 应用程序可以连接到 MySQL @ localhost。

从那里您可以将您的虚拟机网络模式设置为 NAT 并打开主机端口(您的 Windows 机器)以指向来宾端口(您的 VM)。通过这样做,您可以在 Linux VM 中有效地运行整个应用程序堆栈,并在 Windows 中毫无问题地访问它。

于 2013-07-03T14:53:07.017 回答