首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MongoDB只允许我在没有身份验证的情况下进行远程连接,即使在配置文件中设置了auth = true

MongoDB只允许我在没有身份验证的情况下进行远程连接,即使在配置文件中设置了auth = true
EN

Stack Overflow用户
提问于 2015-06-23 17:39:23
回答 2查看 1.9K关注 0票数 1

从宿主机器中登录到MongoDB运行良好,但是如果我尝试从远程位置登录,只有在不提供用户名和密码的情况下,它才允许我进入shell。Es:

代码语言:javascript
复制
$ mongo AAA.BBB.CCC.DDD/dbname 
MongoDB shell version: 2.4.11
connecting to: AAA.BBB.CCC.DDD/dbname
Error while trying to show server startup warnings: not authorized on admin to execute command { getLog: "startupWarnings" }
> 

但是,如果我尝试提供凭据(在主机中完全有效):

代码语言:javascript
复制
$ mongo AAA.BBB.CCC.DDD:27017/dbname -u username -p password
MongoDB shell version: 2.4.11
connecting to: AAA.BBB.CCC.DDD:27017/dbname
Tue Jun 23 11:32:35.967 Error: 18 { ok: 0.0, errmsg: "auth failed", code: 18 } at src/mongo/shell/db.js:228
exception: login failed
$

我的配置文件没有任何绑定IP设置,auth设置为true,我唯一想到的是主机上的mongo-shell版本是3.0.1,而远程客户端的版本是2.4.11。有谁知道发生了什么事吗?

EN

回答 2

Stack Overflow用户

发布于 2015-10-01 07:41:55

我在MongoDB shell版本2.4.9尝试连接到远程MongoDB服务器版本3.0.6时遇到了同样的问题

删除MongoDB shell版本2.4.9并安装MongoDB shell版本3.0.6完全解决了该问题。

我的客户机运行的是Ubuntu14.04,在运行sudo apt-get install mongo-clients之后,我最终使用的是MongoDB shell版本2.4.9,当然这不是suggested method of installing MongoDB,所以我删除了版本2.4.9,并在客户机上安装了版本3.0.6,如下所示:

代码语言:javascript
复制
$ sudo apt-get remove mongodb-clients
$ sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 7F0CEB10
$ echo "deb http://repo.mongodb.org/apt/ubuntu trusty/mongodb-org/3.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.0.list
$ sudo apt-get install mongodb-org-shell

之后,连接到以前失败的远程MongoDB服务器现在可以正常工作(使用bash历史记录重新执行先前抛出身份验证失败的命令)

票数 4
EN

Stack Overflow用户

发布于 2015-06-23 18:19:51

您似乎缺少mongo AAA.BBB.CCC.DDD:27017/dbname -u用户名-p password中的--authenticationDatabase选项。该值应为用户所属的数据库。

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

https://stackoverflow.com/questions/30999203

复制
相关文章

相似问题

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