我在Openshift上创建了一个Node.js应用程序,服务器确实可以工作。
但是,我想要连接的另一台服务器上有一个mysql数据库。我已经为远程mysql访问openshift IP地址授予了权限。
我一直收到这个错误:
Error: ER_ACCESS_DENIED_ERROR: Access denied for user 'myuser'@'ipaddress' (using password: YES)
此确切代码适用于连接到远程数据库服务器的本地主机:
var connection = mysql.createConnection({
host : 'host',
port : 'port',
user : 'user',
password : 'pass',
database : 'db'
});
connection.connect();
var b;
console.log(query);
connection.query(query, function(err, rows, fields) {
if (err) throw err;
b = rows;
console.log(b);
console.log(rows);
result(b);
});
我会感激一些帮助!
答案 0 :(得分:0)
我会建议你使用你的OPenShift设备,然后尝试telnet到你的mysql实例的主机和端口
telnet host port
如果你无法连接,那么你实际上没有暴露你的MySQL实例,以便你的OPenShift上的node.js应用程序可以看到它。
正如旁注,将数据库暴露给外部世界是非常危险的。你有什么理由不能在OpenShift上使用MySQL实例吗?
答案 1 :(得分:0)
OpenShift Online不为您的应用程序提供静态IP地址,因此基于IP的外部白名单可能无法用于授予远程访问权限(从OpenShift托管的实例到外部数据库)。
是否可以将您的openshift gear的域名添加到外部MySQL db的连接白名单中?