Replication
無法在副本集上驗證 admin db
副本集有一個問題
有一個具有 root 權限的管理員使用者它完全可以在配置伺服器上執行,但是當我嘗試在任何 RS 上對其進行身份驗證時 - 得到:
2017-09-18T09:01:53.755-0400 E QUERY Error: 18 Authentication failed. at DB._authOrThrow (src/mongo/shell/db.js:1271:32) at (auth):6:8 at (auth):7:2 at src/mongo/shell/db.js:1271 exception: login failed
在部署了所有副本集之後,在配置伺服器上添加了使用者,也許這就是問題所在?
是的。當您“嘗試”直接對集群中的任何副本集進行身份驗證時,將使用“本地”管理數據庫(副本集中的管理數據庫)。
您需要在本地創建該管理員使用者。如果沒有使用者插入到您的 RS 的管理數據庫中,“localhost 異常”仍然有效,並且您不應該在沒有身份驗證的情況下登錄(在 mongo -command 上沒有 -u 和 -p 參數)並創建該管理員使用者。在為 RS 創建第一個使用者後,localhost 異常消失了,您需要進行身份驗證。因此,第一個創建的使用者必須是具有 root 權限的管理員。