无法使用openshift node.js连接到外部mysql数据库

时间:2014-03-04 18:15:11

标签: mysql node.js openshift node-mysql

我在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);
        });

我会感激一些帮助!

2 个答案:

答案 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的连接白名单中?