Replication

無法使用 MongoDB 3 配置副本集

  • November 28, 2016

我正在嘗試在 MongoDB 3.04 版中創建一個副本集。我遵循本教程並在嘗試使用主伺服器添加節點時遇到下一個錯誤:

vacrep:PRIMARY> rs.add('server address here')
{
   "ok" : 0,
   "errmsg" : "Quorum check failed because not enough voting nodes responded;
    required 2 but only the following 1 voting nodes responded: PRIMARYSERVER:27017; 
    the following nodes did not respond affirmatively: 'server address here':27017 
    failed with Missing credentials for authenticating as internal user",
    "code" : 74
}

這是迄今為止所做的:

  1. 使用 MongoDB 3.04 安裝 3 台伺服器
  2. 使用 repSet 模式執行所有 MongoDB 實例
  3. 使用此方法驗證伺服器之間的連接
  4. 在主伺服器中啟動副本)

我發現很少有關於此錯誤的執行緒,但在其中任何一個中都找不到解決方案。我該如何解決這個問題?

找到解決方案 - 這是權限問題。

在 MongoDB 配置文件中,我必須使用本指南關閉身份驗證模式或在所有節點之間創建共享密鑰:

https://docs.mongodb.com/manual/tutorial/deploy-replica-set-with-keyfile-access-control/#deploy-repl-set-with-auth

這就是我的伺服器無法相互通信的原因。

除了上述顯然正確的答案外,以下步驟將有助於創建 keyFiles :

  1. 在任何文本編輯器中打開新選項卡,粘貼您想要的任何隨機鍵,不帶任何空格。
  2. 保存沒有副檔名的文件
  3. 關閉每個 mongo 實例,如下所示:

一種。use admin

灣。db.shutdownServer(); 4. 現在以 keyFile 作為參數重新啟動 mongo 實例。

例如 start "jaguar" mongod --dbpath "D:\Mongo\data\Replica Sets\Jaguar" --port 50000 --replSet "clusterset" --keyFile "D:\Mongo\data\Replica Sets\Jaguar\Key\F2AB9B2DCF7933733A35EE9C81C34"

引用自:https://serverfault.com/questions/707006