2017-07-06 93 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服务器,并且您必须执行一些工作。但你可能只是在学习,不会很快就做到这一点。