2013-07-03 44 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。 –