2017-07-06 88 views
0

我最近想用我的node.js服務器使用MySQL數據庫。和做一些挖後,我發現下面的GitHub頁面mysql通過node.js使用:做節點js mysql需要apache

https://github.com/mysqljs/mysql

但是我不知道是如果這是一個API,允許使用Node.js語言溝通與MySQL數據庫,或者如果這是MySQL數據庫的完整實現(因此我不需要安裝Apache)。由於我沒有嘗試過的Apache服務器實現這一點,它給了我一個錯誤:

[Error: connect ECONNREFUSED 127.0.0.1:3306]

+2

不,它不需要apache,但它需要mysql運行。在你的情況下在本地主機上。 –

+0

哦,所以它是一種與MySQL服務器@AlexBlex通信的API。那麼這意味着如果我將'host'更改爲不是本地主機的東西,我還可以與MySQL服務器通信?然後不需要在我的機器上安裝mysql? – Webeng

+0

在某種程度上。這有點複雜。 mysql有它自己的設置,最好的做法是將它綁定到本地或內部網絡接口。保持聽取公共IP被認爲是不安全的。關鍵是Mysql是一個數據庫,它由它自己運行。您可以同時從shell,nodejs或少數其他語言連接到它。 –

回答

1

「Apache」通常指的是Apache httpd程序,這只是一個Web服務器。您可以將它與Node應用程序一起使用,例如通過Passenger來處理進程管理和負載平衡。

MySQL是一個單獨的包,一個數據庫服務器,如果你想在你的節點代碼中使用MySQL,它必須運行。 MySQL的NPM軟件包只是一個驅動程序,它需要一個服務器來連接,如果沒有運行它的配置連接,你會看到一個錯誤,如你所得到的。

這裏的解決方案是在您的機器上安裝MySQL服務器,或者使用您控制的現有MySQL服務器。

有時候人們會將「Apache」與諸如MAMP之類的東西混淆在一起。

+0

哇從來沒有聽說過乘客,會看看它。 – Silencer310

1

Node.js的MySQL不:

代碼運行

var mysql = require('mysql'); 

var connection = mysql.createConnection({ 
    host: 'localhost', 
    user: 'root', 
    password: 'password', 
    database: 'articles' 
}); 

connection.connect(); 

錯誤(有做npm install mysql後)需要Apache;但是,請確保您正在本地計算機上運行MySQL服務器。

1

Apache是​​一個Web服務器。 MySQL是一個數據庫。你不需要使用另一個。但是你需要一個運行在你的本地主機上的MySQL服務器來使用MySQL和Node.js,你提供的github鏈接就像是一個使用MySQL和Node.js的API。

Node.js有自己的Web服務器,您可以使用它進行開發,但是如果您轉移到生產環境,則希望在應用程序中使用像Apache或Nginx這樣的Web服務器,並且您必須執行一些工作。但你可能只是在學習,不會很快就做到這一點。