首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在MongoDB在线3 Dev预览中通过shell与OpenShift进行交互?

如何在MongoDB在线3 Dev预览中通过shell与OpenShift进行交互?
EN

Stack Overflow用户
提问于 2016-07-13 08:38:46
回答 1查看 2.7K关注 0票数 1

我怀疑应用程序存在多个问题,这些问题与数据库的权限有关。

然而,一切似乎都已锁定,我无法完成基本命令,如show dbs,以便进一步解决问题,并“查看”我正在处理的内容。我被困在这上面已经两天了,这真的很令人沮丧。

我在在线控制台和本地终端上都尝试过这种方法,包括在登录时提供的和没有提供的用户凭据:

在线控制台

Console > MongoDB Service > Deployment > Pod > mongodb-1-vs19d > Terminal

代码语言:javascript
复制
sh-4.2$ mongo                                                                   
MongoDB shell version: 2.6.9                                                    
connecting to: test                                                             
> show dbs                                                                      
2016-07-13T04:33:10.809-0400 listDatabases failed:{                             
        "ok" : 0,                                                               
        "errmsg" : "not authorized on admin to execute command { listDatabases: 
1.0 }",                                                                         
        "code" : 13                                                             
} at src/mongo/shell/mongo.js:47

本地终端

代码语言:javascript
复制
me@my-computer:~$ oc rsh mongodb-1-vs19d
sh-4.2$ mongo
MongoDB shell version: 2.6.9
connecting to: test
> show dbs
2016-07-13T04:35:06.449-0400 listDatabases failed:{
    "ok" : 0,
    "errmsg" : "not authorized on admin to execute command { listDatabases: 1.0 }",
    "code" : 13
} at src/mongo/shell/mongo.js:47

具有用户凭据的本地终端

代码语言:javascript
复制
me@my-computer:~$ oc rsh mongodb-1-vs19d
sh-4.2$ mongo -u $MONGODB_USER -p $MONGODB_PASSWORD $MONGODB_DATABASE
MongoDB shell version: 2.6.9
connecting to: users
> show dbs
2016-07-13T04:51:39.127-0400 listDatabases failed:{
    "ok" : 0,
    "errmsg" : "not authorized on admin to execute command { listDatabases: 1.0 }",
    "code" : 13
} at src/mongo/shell/mongo.js:47

envars的故障排除是正确的:

代码语言:javascript
复制
me@my-computer:~$ oc env pods mongodb-1-vs19d --list
# pods mongodb-1-vs19d, container mongodb
MONGODB_USER=admin
MONGODB_PASSWORD=secret
MONGODB_DATABASE=users
MONGODB_ADMIN_PASSWORD=very-secret

该数据库是从本地终端创建的,其中:

代码语言:javascript
复制
oc new-app mongodb-persistent -p MONGODB_USER=admin,MONGODB_PASSWORD=secret,MONGODB_ADMIN_PASSWORD=very-secret

根据官方文件:

Basics.html#btb-供应-a-数据库

images/mongodb.html#running-mongodb-commands-in-containers

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-07-20 09:20:10

看起来,您试图将show dbs作为未被授予所需角色的用户。您可以尝试将自己身份验证为admin,如下所示:

代码语言:javascript
复制
mongo -u admin -p $MONGODB_ADMIN_PASSWORD admin

然后,您应该能够show dbsshow usersuse的其他数据库,并显示用户在那里,等等。

您的$MONGODB_USER名为admin,这有点让人困惑--这个常规用户将可以访问$MONGODB_DATABASE。最有可能的还有另一个admin 已由已使用的映像创建。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38346622

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档