node-mysql错误:连接ECONNREFUSED

Sko*_*oua 5 mysql nginx node.js node-mysql

我正在尝试使用node-mysql在我的数据库服务器和客户端节点应用程序之间建立远程连接.

当我尝试连接到远程数据库时,我收到此错误:

node.js:201
    throw e; // process.nextTick error, or 'error' event on first tick
          ^
Error: connect ECONNREFUSED
    at errnoException (net.js:646:11)
    at Object.afterConnect [as oncomplete] (net.js:637:18)
Run Code Online (Sandbox Code Playgroud)

连接到本地数据库工作正常(使用socketPort参数).

我可以从我的计算机localhost以及我拥有的另一台服务器使用PHP连接到这个远程数据库,所以我不认为mysql conf有什么问题.

有关信息,nodejs正在运行nginx并且我已经设置了一个代理以使节点在端口80上工作,也许这就是问题所在?

我该怎么检查?

谢谢.

编辑

这是我的代码,以防万一:

var express = require('express');
var mysql = require('mysql');
var app = express();
var connection = mysql.createConnection({
    debug: false,
    host: '12.34.56.67',
    user: 'user',
    password: 'pass'
});
Run Code Online (Sandbox Code Playgroud)

小智 18

尝试使用mysql套接字:

var connection = mysql.createConnection({
    user: 'user',
    password: 'pass',
    socketPath: 'mysql-socket-path', /*example: /Applications/MAMP/tmp/mysql/mysql.sock*/
    database: 'dbname'
});
Run Code Online (Sandbox Code Playgroud)


Luc*_*ian 7

如果仍有人寻找答案:

检查MySql服务器的配置.

在我的情况下运行netstat -ln | grep mysql(根据疑难问题连接到MySQL)显示我的服务器正在侦听套接字,/tmp/mysql.sock因此在createConnection我使用的选项socketPath: '/tmp/mysql.sock'而不是host:port:


Sko*_*oua 1

好吧,我检查了node-mysql dev,似乎这不是node-mysql bug,但很难进行更多调查。

不管怎样,我发现这个库可以工作,所以我就用它。

https://github.com/mariano/node-db-mysql