gpt4 book ai didi

macos - 尝试将用户添加到 mongodb 2.6.5 时出错

转载 作者:可可西里 更新时间:2023-11-01 09:20:19 25 4
gpt4 key购买 nike

我一天中的大部分时间都在尝试将用户添加到 mongodb 2.6.5。我通过 macports 安装和重新安装了 Mongo。

尝试#1(addUser();):

1. # switching to the admin user
> use admin

2. # db.addUser("admin", "password");

当使用 addUser(); 我得到这个错误:

WARNING: The 'addUser' shell helper is DEPRECATED. Please use 'createUser' instead 
2014-11-03T15:19:16.193-0500 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

尝试#2(createUser();):

1. # switching to the admin user
> use admin

2. # db.createUser("admin", "password");

当使用 createUser(); 我得到这个错误:

2014-11-03T15:25:38.243-0500 Error: couldn't add user: no such cmd: 0 at src/mongo/shell/db.js:1004

我花了很多时间查找其他人的问题和答案。有谁知道如何解决这个问题?

最佳答案

createUser 需要一个文档而不是一个字符串文字。例如:

db.createUser( { "user" : "accountAdmin01",
"pwd": "cleartext password",
"customData" : { employeeId: 12345 },
"roles" : [ { role: "clusterAdmin", db: "admin" },
{ role: "readAnyDatabase", db: "admin" },
"readWrite"
] },
{ w: "majority" , wtimeout: 5000 } )

或者

db.createUser(
{
user: "accountUser",
pwd: "password",
roles: [ "dbAdmin", "userAdmin" ]
}
)

引用db.createUser()了解更多信息

但是在添加用户之前通过执行检查身份验证模式是否存在:

db.system.users.find()

如果它没有返回任何内容,那么您需要通过执行以下操作来创建模式:

db.system.users.insert({
"roles" : [ "userAdmin", "dbAdmin"],
"userSource":"$external",
"user" : "dbadmin"
})

架构生成后,添加用户时不应出现错误。

或者如果您已经升级到 MongoDb 2.6 版本,那么您需要通过执行以下命令来升级 auth schema:

db.getSiblingDB("admin").runCommand({authSchemaUpgrade: 1 })

关于macos - 尝试将用户添加到 mongodb 2.6.5 时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26723693/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com