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)
如果仍有人寻找答案:
检查MySql服务器的配置.
在我的情况下运行netstat -ln | grep mysql(根据疑难问题连接到MySQL)显示我的服务器正在侦听套接字,/tmp/mysql.sock因此在createConnection我使用的选项socketPath: '/tmp/mysql.sock'而不是host:和port:
好吧,我检查了node-mysql dev,似乎这不是node-mysql bug,但很难进行更多调查。
不管怎样,我发现这个库可以工作,所以我就用它。
https://github.com/mariano/node-db-mysql