无法使用 MongoDB 3 配置副本集

无法使用 MongoDB 3 配置副本集

我正在尝试在 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. 安装 3 台带有 MongoDB 3.04 的服务器
  2. 使用 repSet 模式运行所有 MongoDB 实例
  3. 使用此方法验证服务器之间的连接方法
  4. 在主服务器中启动副本)

我找到了几个关于此错误的帖子,但没有找到任何解决方案。我该如何解决这个问题?

答案1

找到了解决方案——这是权限问题。

在 MongoDB 配置文件中,我必须关闭身份验证模式或使用本指南在所有节点之间创建共享密钥:

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

这就是我的服务器无法相互通信的原因。

答案2

除了上述显然正确的答案之外,以下步骤将有助于创建 keyFiles :

  1. 在任何文本编辑器中打开新选项卡,粘贴您想要的任何随机键,不带任何空格。

  2. 保存文件时不带扩展名

  3. 按如下方式关闭每个 mongo 实例:

    A。use admin

    b.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"

相关内容