2013-07-03 59 views
0

无法MySQL服务器从应用的NodeJS连接MySQL连接从虚拟盒失败

环境:

MySQL服务器在Windows中安装 - 安装在Windows 7

Oracle虚拟框 - 7 的Oracle虚拟Box包含nodejs应用程序和相关软件包。

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

我想从我的nodejs应用程序连接mySql服务器(可在Windows 7中)。运行在Oracle Virtual box(Linux)中的nodejs应用程序

当我运行nodejs应用程序时,出现以下错误消息。

错误消息: events.j2:72 throw er; //未处理的 '错误' 事件

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

回答

1

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

bind-address=0.0.0.0 

或类似。

0

此处有多个选项。

如果你真的想你的MySQL在Windows上有两种不同的选择:

  1. 你可以在Windows上安装和的NodeJS有它访问MySQL不使用VirtualBox的。
  2. 您可以使用VirtualBox设置虚拟网络,并让您的nodejs应用程序通过此虚拟网络连接到Windows上的MySQL安装。这种配置可能会让人恼火,但它是可行的。

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

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

+0

因为我在Windows 7上使用MySql和Virtual Box中的Node应用程序,我的节点应用程序有bcrypt模块。由于Bcrtpt在windows7中不起作用。因此我选择了在VirtualBox中使用windows7和Node应用程序的Mysql。 –