我正在将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 questions和GitHub isssues,但没有帮助。
答案 0 :(得分:2)
首先,检查是否使用最新的Robo3T。 MongoDB Atlas使用mongodb+srv://
协议,该协议在一段时间之前不受支持。
之后,请按照以下清单进行操作:
From SRV
; 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。但这没用。