Javascript 无法连接MySQL数据库,正在恢复

Javascript 无法连接MySQL数据库,正在恢复,javascript,mysql,node.js,Javascript,Mysql,Node.js,我尝试通过MySQL Java脚本连接数据库,如下所示: var mysql = require('mysql'); var con = mysql.createConnection({ host: "******", user: "******", password: "******" }); con.connect(function(err) { if (err) throw err; console.log("Connected!");

我尝试通过MySQL Java脚本连接数据库,如下所示:

 var mysql = require('mysql');  
 var con = mysql.createConnection({  
   host: "******",
   user: "******",
   password: "******"
 });  
 con.connect(function(err) {  
 if (err) throw err;  
   console.log("Connected!");
 });
我使用Node执行,同时执行上面的程序,得到以下错误消息:

if (err) throw err;
       ^
Error: connect ECONNREFUSED XX.XXX.XX.XXX:3306
  at Object.exports._errnoException (util.js:1018:11)
  at exports._exceptionWithHostPort (util.js:1041:20)
  at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1086:14)

另外,我已经ping了我的ip地址(ping XX.XXX.XX.XXX),并且能够得到响应。可以帮助我连接数据库。

我遇到了相同的问题,通过添加socketPath参数解决了错误

var connection = mysql.createConnection({
    user: 'user',
    password: 'pass',
    socketPath: '/var/run/mysqld/mysqld.sock', 
    database: 'dbname'
});

我强烈建议创建一个连接池来节省资源。我是这样做的:

//import settings.js
const db_config = {
    hostname : "localhost",
    user : settings.user, //username
    password : settings.password, //password
    database : settings.database //db
}

//create db connection pool
const con = mysql.createPool(db_config);
因此,下一步是使用该连接池!不要害怕这段代码的异步/蓝鸟特性,这就是我构建它的方式

async function query(sql, params) {
    const connection = await con.getConnectionAsync();
    return connection.queryAsync(sql,params)
        .then(rows => rows)
        .finally(() => connection.release());
}
这就是抓取连接
getConnection
方法(Async是bluebird提出的方法),并使用
query
方法(Async'd),最后将连接释放回池中。这有助于避免因TCP连接未关闭而导致内存泄漏


如果您已经从默认的MySQL端口更改了端口,请确保您也指定了端口。

您的凭据正确吗?是的,通过SQL Developer我可以连接…您的主机必须是您的本地主机ip,例如:127.0.0.1(仅当MySQL安装在您自己的机器上时)谢谢您的评论,但是我怎样才能找到我的socketPath?你使用的是哪种操作系统?我使用的是Windows 7我有linux,socketPath是/var/run/mysqld/mysqld.sock,我搜索了一些关于Windows的信息,但我没有找到什么。但通过再次阅读,我认为您可以使用主机和端口