我希望能够从2个Openshift应用程序访问我的MongoDB数据库 - 一个应用程序是通过浏览器的交互式数据库维护应用程序,另一个是通过Openshift应用程序在移动设备上运行的主要Web应用程序。正如我在Openshift中看到的那样,MongoDB在特定应用程序的文件夹空间中设置,而不是独立于该空间。
实现对数据库的多个应用程序访问的方法是什么?
这不是理想的但是我唯一的选择是将两个Openshift应用程序的功能合并为一个?那种味道就像一盘意大利面。
答案 0 :(得分:3)
2018更新:这适用于Openshift 2.版本3非常不同,但是适用于linux和扩展的一般规则,细节已经过时。
虽然@MartinB回答是及时和正确的,但它只是一个链接,所以让我把这些要点放在这里。
假设已经完成了设置非共享数据库,您需要找到它的主机和端口。您可ssh
到您的应用(带有数据库的应用)或使用rhc
:
rhc ssh -a appwithdb
env | grep MONGODB
env
带来所有环境变量,grep过滤它们以仅显示与Mongo相关的变量。你应该看到类似的东西:
OPENSHIFT_MONGODB_DB_HOST=xxxxx-yyyyy.apps.osecloud.com
OPENSHIFT_MONGODB_DB_PORT=zzzzz
xxxxx is the ID of the gear that Mongo sits on
yyyyy is your domain/namespace
zzzzz is MongoDB port
现在,您可以使用它们在Openshift环境中的任何位置创建与DB的连接。另一个应用程序必须使用xxxxx-yyyyy:zzzzz URL。您可以将它们存储在自定义变量中,以便于维护。
$ rhc env-set \
MYOWN_DB_HOST=xxxxx-yyyyy \
MYOWN_DB_PORT=zzzzz \
MYOWN_DB_PASSWORD=****** \
MYOWN_DB_USERNAME=admin..... \
MYOWN_DB_NAME=dbname...
然后使用环境变量而不是标准变量。请记住,当数据库移开时,它们不会自动更新。
答案 1 :(得分:2)