NodeJS mySQL连接到本地主机(NAS)

我正在创build一个在localhost:3000上运行的NodeJS应用程序。 我也正在尝试使用以下代码在Synology NAS上创build一个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了这个问题,但是从这个堆栈主题为根用户授予权限的解决scheme似乎不起作用。

有人可以帮我吗?

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

你可以添加这个mysql命令,你必须在你的mysql服务器上运行:

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

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

 CREATE USER 'newuser'@'%' IDENTIFIED BY 'choseAPassword'; GRANT ALL PRIVILEGES ON *.* TO 'newuser'@'%'; FLUSH PRIVILEGES; 

@Michelem感谢您的帮助,虽然;)