我正在尝试将我的nodejs应用程序部署到openshift但是我遇到了与mysql通信时特别烦人的问题。
我可以使用我的本地客户端通过端口转发(127.0.0.1:3307 local - > 127.11.255.130:3306)访问mysql数据库,并且我已经填充了数据库没有probs。 然后我尝试使用我的node.js脚本访问数据库(在openshift中的同一域上运行):
var connection = mysql.createConnection({
host : '127.11.255.130',
user : 'usernameissued',
password : 'passwordissued',
database : 'cpapi'
});
connection.connect(); // blows up here
connection.query("SELECT id, firstname, lastname from users", function(err, rows, fields) {
if (err) throw err;
});
connection.end();
抛出的异常是:
ER_ACCESS_DENIED_ERROR:拒绝访问用户'usernameissued'@'127.11.255.130'(使用密码:是)
我甚至更改了该用户授予完全访问权限的所有权限,但它似乎仍无效。
任何想法都将不胜感激。
答案 0 :(得分:3)
我有同样的问题(最后一小时)并找到了一个半解决方案 - 用空密码创建用户。我可以推测问题在于“mysql”模块如何散列密码。我不知道问题是否来自最新版本的“mysql”模块 - 总是在我的本地机器上使用空密码:)
答案 1 :(得分:0)
如果你还没有在mysql中输入任何数据,我会删除mysql盒并重新安装它。如果您输入了数据,请先执行mysqldump,然后删除/重新安装mysql盒式磁带。您使用的是什么版本的mysql?