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感谢您的帮助,虽然;)