从远程连接到openshift 3 mongodb?

时间:2017-09-30 10:19:42

标签: mongodb openshift openshift-3

如何使用本地mac中的https://mongobooster.com/连接到我的Openshift 3 MongoDB?来自pod的凭据不起作用。

Pod: nodejs-mongo-persistent-1-rt6ch

Connected to MongoDB at: mongodb://userLorem:ABC123SomePassword@172.123.123.123:27017/sampledb

2 个答案:

答案 0 :(得分:5)

只要充实格雷厄姆的答案,以防它可能有所帮助(虽然我不是一个权威人士)。

这对我来说是Robo 3T(正式的RoboMongo) - 一个用于MongoDB管理的GUI。

结果是我可以使用GUI与OpenShift上的MongoDB实例进行远程交互。

理智/数据检查和环境熟悉

假设您在OpenShift上运行MongoDB,要获取相关数据,请转到:

Your Project> Resources> Secrets> mongodb> [ click reveal secret ]

如果您尚未将这些值复制到安全的地方:

  

database-admin-password:*****

     

database-name:sampledb

     

database-password:*****

     

database-user:*****

假设您安装了OpenShift CLI工具,则可以执行以下操作以熟悉项目环境:

oc get pods

会返回类似的内容:

NAME                     READY     STATUS       RESTARTS   AGE
mongodb-1-XXXX5          1/1       Running      0          12h
my-node-app-10-build     0/1       Completed    0          10h
my-node-app-2-build      0/1       Init:Error   0          11h
my-node-app-8-cg2v2      1/1       Running      0          10h
my-node-app-9-build      0/1       Completed    0          10h

然后您可以使用以下内容rsh进入您的mongo pod(替换为您的实际mongodb pod名称):

oc rsh mongodb-1-XXXX5

然后使用以下命令运行mongo shell(使用之前从控制台获得的值):

// don't do this...
// normal user name, normal user password (won't allow you to run 'show dbs')
// mongo -u "database-user" -p "database-password" sampledb

// do this...
// admin user, admin user password (this lets you run 'show dbs' etc)
mongo -u "admin" -p "database-admin-password" admin

设置端口转发

以上步骤让我对我正在使用的内容更加熟悉,然后我可以查看端口转发:

https://learn.openshift.com/introduction/port-forwarding

关于在OpenShift上远程访问MongoDB的相关部分是第四步:

  

设置本地计算机和数据库之间的端口转发   在OpenShift上运行,您可以使用oc port-forward命令。你需要   传递pod的名称和数据库服务端口的详细信息   正在使用,以及使用的本地端口。

     

该命令的格式为:

     

oc port-forward <pod-name> <local-port>:<remote-port>

就我而言,我这样做了:

oc port-forward mongodb-1-XXXX5 34000:27017

所以这意味着:

  

客户端在本地侦听端口34000并转发到27017   吊舱。

请参阅:https://docs.openshift.com/online/dev_guide/port_forwarding.html

远程GUI设置

我在Robo 3T中定义的设置是:

  

类型:直接连接

     

名称:OpenShift MongoDB实例

     

地址:localhost:34000

     

在“身份验证”标签上...

     

执行身份验证:已选中

     

数据库:admin

     

用户名:admin

     

密码:[您的数据库管理员密码]

     

认证机制:

     

SCRAM-SHA-1

答案 1 :(得分:1)

您需要使用端口转发。请参阅以下端口转发教程:

示例适用于PostgreSQL,但原理相同。