错误:在访问mysql时连接ECONNREFUSED

我是node.js的新手,并试图学习它。
我已经安装了node-mysql NPM模块。 这里我列出了我的代码来访问mysql:

// Include http module, var http = require('http'), // And mysql module you've just installed. mysql = require("mysql"); // Create the connection. // Data is default to new mysql installation and should be changed according to your configuration. var connection = mysql.createConnection({ user: "root", password: "", database: "astitvabmt", host: '127.0.0.1', port: '3306', _socket: '/var/run/mysqld/mysqld.sock' }); // Create the http server. http.createServer(function (req, res) { // Attach listener on end event. // Query the database. connection.query('SELECT * FROM tbluser;',function(err, results, fields) { if (err) throw err; console.log("sachin : " + results); var output = '<html><head></head><body><h1>Latest Posts</h1><ul><table border=1><tr>'; for (var index in fields) { output += '<td>' + fields[index].name + '</td>'; } output += '</tr>'; for (var index in results) { output += '<tr><td>' + results[index].Recipe + '</td>'; output += '<td>' + results[index].Amount + '</td>'; output += '<td>' + results[index].Unit + '</td>'; output += '<td>' + results[index].Ingredient + '</td></tr>'; } output += '</ul></body></html>'; res.writeHead(200, {'Content-Type': 'text/html'}); res.end(output); }); // Listen on the 8080 port. }).listen(8080); console.log('Server mysqlJS running at 8080'); 

但是我得到错误:

 sachin@ubuntu:/opt/lampp/htdocs/1nodeapp$ node mysql.js Server mysqlJS running at 8080 Error: connect ECONNREFUSED at errnoException (net.js:901:11) at Object.afterConnect [as oncomplete] (net.js:892:19) -------------------- at Handshake.Sequence (/opt/lampp/htdocs/1nodeapp/node_modules/mysql/lib/protocol/sequences/Sequence.js:15:20) at new Handshake (/opt/lampp/htdocs/1nodeapp/node_modules/mysql/lib/protocol/sequences/Handshake.js:9:12) at Protocol.handshake (/opt/lampp/htdocs/1nodeapp/node_modules/mysql/lib/protocol/Protocol.js:42:50) at Connection.connect (/opt/lampp/htdocs/1nodeapp/node_modules/mysql/lib/Connection.js:72:18) at Connection._implyConnect (/opt/lampp/htdocs/1nodeapp/node_modules/mysql/lib/Connection.js:182:10) at Connection.query (/opt/lampp/htdocs/1nodeapp/node_modules/mysql/lib/Connection.js:97:8) at Server.<anonymous> (/opt/lampp/htdocs/1nodeapp/mysql.js:22:18) at Server.EventEmitter.emit (events.js:98:17) at HTTPParser.parser.onIncoming (http.js:2108:12) at HTTPParser.parserOnHeadersComplete [as onHeadersComplete] (http.js:121:23) 

我的mysqlconfiguration中没有skip-networking选项。
我已经在我的PC上安装了XAMPP。以前我用的是使用apache的3306端口进行mysql连接。

尝试使用socketPath参数而不是_socket

正如这里所说的https://github.com/felixge/node-mysql#connection-options

为MySQL指定一个主机名/端口( localhost / 3306 )和一个套接字path( /var/run/mysqld/mysql.sock )没有任何意义 – 它只能使用其中的一个。 select一个适合您的安装。

“连接拒绝”套接字错误一般==防火墙阻塞mySQL端口

有问题的端口通常是3306.这里是Windows服务器的说明:

http://www.activeservers.com/page3610203.aspx

这里是Linux服务器的说明:

http://www.cyberciti.biz/tips/linux-iptables-18-allow-mysql-server-incoming-request.html

问:您是否试图在同一台服务器上连接到mySQL(例如Apache与MySQL共处于同一主机上),还是试图从另一台远程主机连接到mySQL?