【问题标题】:Cannot connect to external mysql database using openshift node.js无法使用 openshift node.js 连接到外部 mysql 数据库
【发布时间】:2014-03-04 18:15:10
【问题描述】:

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

我将不胜感激!

【问题讨论】:

  • 您能否使用mysql直接从设备手动连接到您的外部数据库
  • 您可以使用rhc ssh <yourappname> SSH 进入您的设备并使用适当的选项运行“mysql”以连接到远程数据库
  • 它给了我错误 2003 (HY000) (110)

标签: mysql node.js openshift node-mysql


【解决方案1】:

我会推荐你​​ ssh 进入你的 OPenShift 设备,然后尝试远程登录到你的 mysql 实例的主机和端口

telnet host port

如果您无法连接,那么您实际上并没有公开您的 MySQL 实例,以便您在 OPenShift 上的 node.js 应用程序可以看到它。

顺便说一句,像这样将您的数据库暴露给外部世界是非常危险的。有什么原因不能在 OpenShift 上使用 MySQL 实例吗?

【讨论】:

  • 我知道它存在安全问题,但用于测试目的。通过 ssh,它让我从 openshift 齿轮拒绝访问。但是我可以从我的本地主机服务器连接到远程数据库。这是我想不通的。
【解决方案2】:

OpenShift Online 不为您的应用程序提供静态 IP 地址,因此基于外部 IP 的白名单可能无法很好地授予远程访问权限(从 OpenShift 托管的实例到外部数据库)。

是否可以将您的 openshift gear 的域名添加到外部 MySQL db 的连接白名单中?

【讨论】:

    猜你喜欢
    • 2016-03-22
    • 2014-11-25
    • 1970-01-01
    • 2013-06-03
    • 2013-06-13
    • 2014-04-04
    • 2014-04-24
    • 1970-01-01
    相关资源
    最近更新 更多