Mongodb

無法將獨立 MongoDB 遷移到集群

  • November 22, 2019

我正在嘗試將獨立的 MongoDB 數據庫轉換為集群,以便將我的數據庫遷移到 MongoDB Atlas。

我已按照以下步驟嘗試轉換它:

  1. 停止我的 mongodb 實例
  2. 將配置更改為以下內容:
........................

#how the process runs

processManagement:   
    timeZoneInfo: /usr/share/zoneinfo

security:
  authorization: enabled

replication:  
 replSetName: "rs0"
  1. 使用以下命令重新啟動 mongodb:sudo mongod --config /etc/mongod.conf --fork
  2. 使用具有以下角色的使用者登錄到 mongodb 到 admin 數據庫:clusterMonitor, readAnyDatabase, userAdminAnyDatabase
  3. 執行了命令rs.initiate()

它給了我以下錯誤:

{
       “ok” : 0,
       “errmsg” : “not authorized on admin to execute command { replSetInitiate: undefined, $db: \“admin\” }“,
       “code” : 13,
       “codeName” : “Unauthorized”
}

我已經在開發伺服器中嘗試了前面的步驟,一切正常,在我的生產環境中它不起作用,感謝任何幫助。

使用具有以下角色的使用者登錄到 mongodb 到 admin數據庫clusterMonitorreadAnyDatabase``userAdminAnyDatabase

管理員未授權執行命令 { replSetInitiate: undefined, $db: \“admin\” }“

此錯誤是預期的,因為clusterMonitor它是只讀角色。

要在啟用訪問控制時初始化或更新副本集配置,您的使用者需要一個集群管理角色,例如clusterManagerclusterAdmin

引用自:https://dba.stackexchange.com/questions/253958