Robomongo:无法连接到副本集。 Set 的主节点不可访问
Robomongo: Cannot connect to replica set. Set's primary is unreachable
我正在将 mLab 从 Heroku 迁移到 MongoDB Atlas。作为步骤之一,我想检查是否有连接到新创建的集群。我在 Heroku mLab 实例中使用 Robo3T(以前称为 Robomongo)。但它不适用于 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 and on GitHub isssues,但没有任何帮助。
首先,检查您是否使用最新的Robo3T。 MongoDB Atlas 使用 mongodb+srv://
协议,之前一段时间不支持该协议。
之后请关注check-list:
- 使用 copy-pasting URL 从 MongoDB Atlas 导入
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. 以前,我也遇到过与 Heroku 上相同的数据库有相同 db-name 和 user-name 的问题,我也是认为 Auth 机制应该是 MONGODB-CR。但这没有用。
P.P.S. 如果您没有看到 Manually specify visible databases
- 那么请检查您是否有最新版本 (1.4.+) Robo3T(以前称为 Robomongo)
如果有人在使用 Robo3T 版本 1.4.4
时遇到此错误,我们可以通过更新 robo3t.json
文件解决此问题(启用日志,您可以看到此文件的本地位置)
By enable Logs, you will see where settings saved via message starts with Info: Settings saved to: {robo3t.json_path}
- 正常粘贴您的 URI,然后正常点击
From URI
,然后保存。
- 关闭Robo3T(重要)
- 使用文本编辑器打开
robo3t.json
文件。
- 在
connections
范围内,查找刚刚从上面的步骤创建的连接,在 ssl
对象内找到 allowInvalidCertificates
属性,将值从 false
更改为true
然后保存文件
- 打开Robo3T然后连接,应该可以正常连接
确保您已在 Network Access
下的 mongodb 云门户上将您的 IP 地址列入白名单。
检查您的用户名和密码!
tl;博士
似乎 Robo 3T 1.4.3 returns Cannot connect to replica set... Set's primary is unreachable
错误也用于身份验证错误。仔细检查您的用户凭据。
详情
过去,上述所有优秀答案都帮助我解决了此错误消息。然而,最近我遇到了一个似乎不受所有变通办法影响的 Atlas 集群。我最终放弃并尝试使用 Atlas 推广的“官方”MongoDB Compass 客户端。此客户端也返回了一个错误,但一个不同且更有用的错误:
bad auth : Authentication failed.
怀疑密码不正确,我在Atlas中为用户生成了一个新密码,并在Robo 3T中进行了更新。此Robo成功连接到DB后
我正在将 mLab 从 Heroku 迁移到 MongoDB Atlas。作为步骤之一,我想检查是否有连接到新创建的集群。我在 Heroku mLab 实例中使用 Robo3T(以前称为 Robomongo)。但它不适用于 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 and on GitHub isssues,但没有任何帮助。
首先,检查您是否使用最新的Robo3T。 MongoDB Atlas 使用 mongodb+srv://
协议,之前一段时间不支持该协议。
之后请关注check-list:
- 使用 copy-pasting URL 从 MongoDB Atlas 导入
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. 以前,我也遇到过与 Heroku 上相同的数据库有相同 db-name 和 user-name 的问题,我也是认为 Auth 机制应该是 MONGODB-CR。但这没有用。
P.P.S. 如果您没有看到 Manually specify visible databases
- 那么请检查您是否有最新版本 (1.4.+) Robo3T(以前称为 Robomongo)
如果有人在使用 Robo3T 版本 1.4.4
时遇到此错误,我们可以通过更新 robo3t.json
文件解决此问题(启用日志,您可以看到此文件的本地位置)
By enable Logs, you will see where settings saved via message starts with
Info: Settings saved to: {robo3t.json_path}
- 正常粘贴您的 URI,然后正常点击
From URI
,然后保存。 - 关闭Robo3T(重要)
- 使用文本编辑器打开
robo3t.json
文件。 - 在
connections
范围内,查找刚刚从上面的步骤创建的连接,在ssl
对象内找到allowInvalidCertificates
属性,将值从false
更改为true
然后保存文件 - 打开Robo3T然后连接,应该可以正常连接
确保您已在 Network Access
下的 mongodb 云门户上将您的 IP 地址列入白名单。
检查您的用户名和密码!
tl;博士
似乎 Robo 3T 1.4.3 returns Cannot connect to replica set... Set's primary is unreachable
错误也用于身份验证错误。仔细检查您的用户凭据。
详情
过去,上述所有优秀答案都帮助我解决了此错误消息。然而,最近我遇到了一个似乎不受所有变通办法影响的 Atlas 集群。我最终放弃并尝试使用 Atlas 推广的“官方”MongoDB Compass 客户端。此客户端也返回了一个错误,但一个不同且更有用的错误:
bad auth : Authentication failed.
怀疑密码不正确,我在Atlas中为用户生成了一个新密码,并在Robo 3T中进行了更新。此Robo成功连接到DB后