Robomongo:无法连接到副本集。Set 的主节点无法访问

wow*_*in2 4 heroku mongodb mlab mongodb-atlas robo3t

我正在将 mLab 从 Heroku 迁移到 MongoDB Atlas。作为步骤之一,我想检查是否可以连接到新创建的集群。我将Robo3T(以前称为 Robomongo)用于 Heroku mLab 实例。但它不适用于 Atlas。从 URL 创建连接时出现以下错误:

Cannot connect to replica set "SampleProject"[cluster-abcd12ef-shard-00-00.a0b1c.mongodb.net:27017]. 
Set's primary is unreachable.

Reason:
Failed to initialize MongoWorker. Reason: connect failed
Run Code Online (Sandbox Code Playgroud)

试图调整设置,但那里的一切看起来都正确,就像 Heroku 一样,唯一的主机和端口不同。

还查看了类似的问题GitHub问题,但没有任何帮助。

小智 9

如果有人在使用 Robo3T 版本时遇到此错误1.4.4,我们可以通过更新robo3t.json文件来解决此问题(启用日志,您可以看到此文件的本地位置)

通过启用日志,您将看到通过消息保存的设置从何处开始Info: Settings saved to: {robo3t.json_path}

  • 像平常一样粘贴您的 URI,然后From URI像平常一样单击,然后单击“保存”。
  • 关闭Robo3T(重要)
  • robo3t.json使用某些文本编辑器打开文件。
  • connections范围内,查找刚刚从上面的步骤创建的连接,找到对象allowInvalidCertificates内的属性ssl,将值更改为falsetrue然后保存文件
  • 打开Robo3T然后连接连接,应该可以正常连接


wow*_*in2 8

首先,检查您是否使用最新的 Robo3T。MongoDB Atlas 使用mongodb+srv://之前不支持的协议。

之后,请按照以下检查清单进行:

  • 使用From SRV从 MongoDB Atlas 复制粘贴 URL导入;
  • MongoDB Atlas 甚至对免费的 Sandbox (Atlas M0) 帐户也使用副本集。所以在创建过程中确保你使用了那个类型;
  • 填写或勾选所有集群成员;
  • Set Name 应该设置。

身份验证选项卡上的重要区别

  • Database不应该admin像数据库名称(在 Heroku 上使用),
  • Auth Mechanism 应该 SCRAM-SHA-1
  • 检查Manually specify visible databases并在那里输入admin,<you database name from Heroku>

在 TLS 选项卡上:

  • 查看 Use TLS protocol
  • Authentication method —— Self-signed Certificate

现在它应该可以工作了。

PS以前,我也遇到了与 Heroku 上相同的数据库名称和用户名相同的问题,我还认为 Auth Mechanism 应该是 MONGODB-CR。但这没有用。

PPS如果您没有看到Manually specify visible databases- 那么请检查您是否拥有 Robo3T(以前称为 Robomongo)的最新版本 (1.4.+)


小智 5

确保您已将 mongodb 云门户上的 IP 地址列入白名单Network Access