[英]mongodb replica setup: not authorized on local to execute command
我一直在遵循本指南: https : //gist.github.com/calvinh8/c99e198ce5df3d8b1f1e42c1b984d7a4
我剛剛完成所有服務器的設置,並在admin數據庫中創建了該用戶,並獲得了以下回報:
Successfully added user: {
"user" : "user",
"roles" : [
{
"role" : "root",
"db" : "admin"
}
]
}
現在,我嘗試使用以下命令鏈接數據庫:
rs.add("ec2-XX-XXX-XX-XXX.compute-1.amazonaws.com")
但這給了我錯誤:
2018-04-11T00:20:56.389+0000 E QUERY [thread1] Error: count failed: {
"ok" : 0,
"errmsg" : "not authorized on local to execute command { count: \"system.replset\", query: {}, fields: {} }",
"code" : 13,
"codeName" : "Unauthorized"
} :
_getErrorWithCode@src/mongo/shell/utils.js:25:13
DBQuery.prototype.count@src/mongo/shell/query.js:383:11
DBCollection.prototype.count@src/mongo/shell/collection.js:1700:12
rs.add@src/mongo/shell/utils.js:1240:1
@(shell):1:1
指向副本時是否需要登錄以進行身份驗證? 機器之間是否存在keyFile錯誤? 誰能闡明一些想法?
我發現這里的另一個答案中提到的“綜合且編寫良好”的文檔在只需要建立數據庫時就非常令人困惑和誤導。 但是,此官方教程幾乎是針對性的: https : //docs.mongodb.com/manual/tutorial/deploy-replica-set-with-keyfile-access-control/#deploy-repl-set-with-auth
這很簡單,它是:安裝裸db,創建密鑰並將其放在每個框上,更新配置,啟動每個db,在本地指定一個作為主要數據庫,從mongoshell啟動副本集。 我遇到的一個問題是所有副本集成員必須一次性添加(如本教程中所建議)。 否則,添加第一個成員后,身份驗證要求會生效,並阻止添加更多成員,直到創建集群管理員用戶為止。 因此,在啟動副本集之后並離開外殼之前,請確保創建3個用戶:admin,集群admin和備份admin,檢查是否可以從另一個外殼登錄,然后以適當的用戶身份繼續工作
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.