【问题标题】:OpenShift MongoDB ECONNREFUSEDOpenShift MongoDB ECONNREFUSED
【发布时间】:2016-05-27 10:03:34
【问题描述】:

当尝试连接到 mongodb-2.4 墨盒时,我不断收到以下信息

 ==> app-root/logs/nodejs.log <==
  Error: connect ECONNREFUSED 127.0.0.1:27017
      at Object.exports._errnoException (util.js:893:11)
      at exports._exceptionWithHostPort (util.js:916:20)
      at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1075:14)

我正在创建如下连接字符串

if(process.env.OPENSHIFT_MONGODB_DB_PASSWORD){
  connection_string = process.env.OPENSHIFT_MONGODB_DB_USERNAME + ":" +
  process.env.OPENSHIFT_MONGODB_DB_PASSWORD + "@" +
  process.env.OPENSHIFT_MONGODB_DB_HOST + ':' +
  process.env.OPENSHIFT_MONGODB_DB_PORT + '/' +
  process.env.OPENSHIFT_APP_NAME;
}

当它失败时,它认为端口是 27017,但是当我运行 rhc port-forward appname 时,它​​会显示以下不同的 mongodb 端口

Service Local                OpenShift
------- --------------- ---- ------------------------------------------------------
haproxy 127.0.0.1:8080   =>  127.6.174.2:8080
haproxy 127.0.0.1:8081   =>  127.6.174.3:8080
mongodb 127.0.0.1:42346  =>  5747fa8f70-appname.rhcloud.com:42346
node    127.0.0.1:8082   =>  127.6.174.1:8080

关于哪里出了问题有什么想法吗?

【问题讨论】:

  • MongoDB 在 42346 上运行,日志显示您将在端口 27017 上连接 mongodb。尝试在 42346 上连接它
  • @JitendraKhatri 我已经在上面说过了。如果 mongodb 盒由 OpenShift 提供,为什么它在提供的变量 process.env.OPENSHIFT_MONGODB_DB_PORT 中返回错误的端口号??
  • 试试这种格式的连接字符串,mongodb://:@localhost/。对我来说效果很好

标签: node.js mongodb openshift


【解决方案1】:

因此,如果您在将 mongodb 磁带与 Web 服务器磁带一起部署后移除它,然后更换 mongodb 磁带,则 Web 服务器变量不会得到更新。我需要重新启动 Web 层服务器,以便它们更新新的 mongodb 设置变量。

【讨论】:

  • 我想我有同样的问题。你刚刚重启了服务器吗?因为它现在对我有用
  • 你替换了mongo实例了吗?我最终离开了 openshift,因为在花时间设置它之后,我去升级我的帐户并注意到他们不接受包括我的国家(澳大利亚)在内的很多国家。
  • 我发现它与此无关。我错误地用 webpack 覆盖了 process.env 变量,因此我的脚本无法检索正确的环境变量。 “他们不接受很多国家”是什么意思?我们位于意大利,目前正在使用青铜计划
  • 我在澳大利亚.. 相当大的国家,但显然我不能注册青铜或白银计划,因为这里不接受付款......在设置服务器等之前很高兴知道.
  • 是的,这让我很吃惊。您还使用什么其他服务来托管您的应用程序?找到便宜又可靠的节点托管服务并不容易
猜你喜欢
  • 2016-09-04
  • 2016-10-01
  • 1970-01-01
  • 2017-11-02
  • 1970-01-01
  • 2020-04-10
  • 1970-01-01
  • 2022-12-30
  • 1970-01-01
相关资源
最近更新 更多