首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将身份验证添加到MongoDB2.6中?

如何将身份验证添加到MongoDB2.6中?
EN

Stack Overflow用户
提问于 2014-05-05 08:33:25
回答 3查看 17.9K关注 0票数 20

我在ubuntu上有一个运行MongoDB2.6的测试服务器。同样的版本正在我的macbook上运行。在这两台机器中,我使用标准的升级机制从MongoDB2.4升级。现在我需要设置基于用户名和密码的身份验证。

在我的mac上,我使用brew更新将mongodb更新为2.6。我

我在我的Mac上尝试了以下命令

代码语言:javascript
复制
$mongo
>db.getSiblingDatabase('admin')
>db.createUser({user:"root", pwd:"mycomplexpassword", roles:[ "userAdminAnyDatabase", "readWrite" ] } )

我得到了以下错误

代码语言:javascript
复制
Error: couldn't add user: User and role management commands require auth data to have schema version 3 but found 1 at src/mongo/shell/db.js:1004

因此,我无法启用mongodb。如何解决这个问题?在谷歌搜索错误时,现在似乎没有任何有用的信息。

PS:当我在服务器上向mongodb添加身份验证时,是否也会出现相同的问题?

EN

回答 3

Stack Overflow用户

发布于 2014-05-07 16:45:40

在mongo控制台中尝试此命令

代码语言:javascript
复制
db.getSiblingDB("admin").runCommand({authSchemaUpgrade: 1 });

升级授权架构。

票数 24
EN

Stack Overflow用户

发布于 2015-04-16 06:15:58

我认为上述答案是正确的,但使我成功的是以下步骤(F.Y.I,我在2.6.8版):

1.在蒙戈跑:

代码语言:javascript
复制
db.system.version.update({}, {$set: {currentVersion: 3}});

2.在蒙戈跑:

代码语言:javascript
复制
db.getSiblingDB("admin").runCommand({authSchemaUpgrade: 1 });

3.在蒙戈跑:

代码语言:javascript
复制
db.createUser(
  {
    user: “your_user_name”,
    pwd: “your_password”,
    roles: [ { role: "userAdminAnyDatabase", db:"admin" } ]
  }
)
  1. 在/usr/local/etc/mongod.conf中添加以下内容 auth=true
  2. 重启芒果: mongod --dbpath /data/db
  3. 转到Mac上的shell并登录(还请注意用户名和密码的单引号): mongo admin -u 'your_use_name' -p 'your_password'
票数 2
EN

Stack Overflow用户

发布于 2015-01-18 02:41:54

我的mongoDb版本2.6.5在下面命令中发出

db.system.version.update({}, {$set: {currentVersion: 3}});

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

https://stackoverflow.com/questions/23468137

复制
相关文章

相似问题

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