Robomongo:无法连接到副本集。 Set的主要对象无法访问

时间:2020-10-26 22:38:05

标签: mongodb heroku 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

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

也查看了similar questionsGitHub isssues,但没有帮助。

1 个答案:

答案 0 :(得分:2)

首先,检查是否使用最新的Robo3T。 MongoDB Atlas使用mongodb+srv://协议,该协议在一段时间之前不受支持。

之后,请按照以下清单进行操作:

  • 通过从MongoDB Atlas复制粘贴URL,使用导入From SRV
  • MongoDB Atlas甚至对免费的沙盒(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

现在应该可以了。

P.S。。以前,我在使用相同的db-name和user-name的Heroku上拥有相同的数据库时也遇到了问题,我还认为Auth机制应该是MONGODB-CR。但这没用。