Nic*_*ico 17 mysql apache node.js
我使用Node.js服务器端.我在localhost上尝试了我的代码,一切正常.我买了一台服务器并在其上安装了Apache和node.js并在那里测试我的Web应用程序.我正确地将MySQL连接配置从localhost更改为服务器配置.
我使用以下配置测试我的Web应用程序:
var mysql = require('mysql');
var mysqlConnection;
function new_mysqlConnection() {
mysqlConnection = mysql.createConnection({
host : 'myurl.at',
user : 'myusername',
database : 'mydatabase',
password : 'mypassword'
});
}
Run Code Online (Sandbox Code Playgroud)
我使用以下命令启动node.js服务器:
$ node server.js
Run Code Online (Sandbox Code Playgroud)
当我加载页面时,它正确显示,但当Node.js尝试连接到数据库时,我总是遇到以下错误:
Error: connect ECONNREFUSED
at errnoException (net.js:905:11)
at Object.afterConnect [as oncomplete] (net.js:896:19)
--------------------
at Protocol._enqueue (/var/www/node_modules/mysql/lib/protocol/Protocol.js:135:48)
at Protocol.handshake (/var/www/node_modules/mysql/lib/protocol/Protocol.js:52:41)
at Connection.connect (/var/www/node_modules/mysql/lib/Connection.js:119:18)
at reconnectDb (/var/www/server.js:319:18)
at app.get.email (/var/www/server.js:109:2)
at Layer.handle [as handle_request] (/var/www/node_modules/express/lib/router/layer.js:82:5)
at trim_prefix (/var/www/node_modules/express/lib/router/index.js:302:13)
at /var/www/node_modules/express/lib/router/index.js:270:7
at Function.proto.process_params (/var/www/node_modules/express/lib/router/index.js:321:12)
at next (/var/www/node_modules/express/lib/router/index.js:261:10)
Run Code Online (Sandbox Code Playgroud)
shr*_*oye 68
我遇到了同样的问题,但我通过改变解决了这个问题
host: 'localhost'
Run Code Online (Sandbox Code Playgroud)
到
host: '127.0.0.1'
Run Code Online (Sandbox Code Playgroud)
tde*_*roc 31
您需要将值添加socket path
到配置对象:
socketPath: '/var/run/mysqld/mysqld.sock'
Run Code Online (Sandbox Code Playgroud)
在MAMP中,你转到http:// localhost:8888/MAMP,你会发现:
/Applications/MAMP/tmp/mysql/mysql.sock
Run Code Online (Sandbox Code Playgroud)
最后你有:
var connection = mysql.createConnection({
host : config.host,
user : config.user,
password : config.pass,
database : config.db,
socketPath: '/Applications/MAMP/tmp/mysql/mysql.sock'
});
Run Code Online (Sandbox Code Playgroud)
har*_*nam 17
检查服务器中的MySQL端口.
在MAMP中,默认情况下它使用8889.
将其添加到您的连接配置中.
你的MySQL配置应该是这样的.
this.pool = mysql.createPool({
connectionLimit: 10,
host: 'localhost',
user: 'root',
password: 'root',
database: 'todo',
port: '8889'
});
Run Code Online (Sandbox Code Playgroud)
小智 6
回复:关于 localhost 与 127.0.0.1 的问题(我没有足够的声誉来添加评论:-( ) - /sf/answers/3747318431/
我遇到了同样的问题,我host: "localhost"
通过使用解决了它"127.0.0.1"
。
我收到错误Error: connect ECONNREFUSED ::1:3306
- 我最终意识到它正在报告 IPv6 本地地址。尽管我使用 @'%' 和 @'localhost' 定义了 MySQL 用户,但看起来 MySQL 不喜欢 IPv6 本地地址 - 可能与我的 MySQL 设置有关。
归档时间: |
|
查看次数: |
55030 次 |
最近记录: |