NodeJS mySQL与localhost(NAS)的连接

时间:2015-12-08 11:07:35

标签: mysql node.js connection localhost

我正在创建一个在localhost:3000上运行的NodeJS应用程序。我还尝试使用以下代码在Synology NAS上建立mySQL连接:

var mysql = require('mysql');
var connection = mysql.createConnection({
    host     : '192.168.1.17',
    port     : 3306,
    user     : 'root',
    password : 'password'
});

connection.connect( function(err) {
    if (err)
        console.log(err);
    else
        console.log('connected');
});

不幸的是,控制台一直显示错误。

ER_ACCESS_DENIED_ERROR: Access denied for user 'root'@'192.168.1.15'

这里奇怪的是我正试图在192.168.1.17上建立与我的NAS站的连接,但控制台说主机是.15。有人能解释我为什么吗?

我也用Google搜索了这个问题,但是从this stack topic授予root用户权限的解决方案似乎不起作用。

有人可以帮助我吗?

2 个答案:

答案 0 :(得分:2)

192.168.1.15您是在您的PC上运行的节点应用,可能您还没有root@%的访问列表,其中%来自任何地方,您只有访问列表对于root@localhost,但您不在Mysql localhost上。

您可以使用必须在mysql服务器上运行的mysql命令添加它:

CREATE USER 'root'@'%' IDENTIFIED BY 'password';

答案 1 :(得分:0)

我已经解决了我的问题: 似乎root用户默认是安全的。

.flex {
  display: -webkit-box;
  display: flex;

  height: 100px;
  width: 100%;
}

.flex > div {
  flex-grow: 1;
  flex-shrink: 1;
  /* set value for the flex basis, the two properties above will evenly 
  divide the space. */
  flex-basis: 20px;

  -webkit-flex-grow: 1;
  -webkit-flex-shrink: 1;

  margin: 15px;
  overflow: hidden;
}

.example {
  overflow: hidden;
  border: 1px solid black;
}

.example .wide {
  width: 400px;
  height: 10px;
}

@Michelem感谢您的帮助;)