我在使用RoboMongo连接到Mongo群集时遇到问题。当我在指南针中使用相同的连接字符串时,它可以工作。但是Compass Community Edition不像Robomongo那样灵活。
无法连接到副本集“ Employee UAT” [hhds6666:27027]。
在服务器端找到具有不同主机名[hhds6666.XXXXXXX.int:27027]的主服务器。请仔细检查是否使用与服务器副本集配置相同的主机名和端口。
如果同一副本集名称用于不同的副本集,则仅在Robomongo的不同实例上支持此配置。请为每个具有相同集合名称的副本集打开一个新的Robomongo实例。
原因: 在同一副本集名称“ UAT_RS”下找到了不同的成员
我经历了很多这样的链接:
https://github.com/Studio3T/robomongo/issues/1422
https://github.com/Studio3T/robomongo/issues/1345
此处是类似问题:Unable to connect to MongoDB Replica Set from other server using robo3T and in C#
答案 0 :(得分:0)
第一个解决方案:
尝试删除“ 副本集”名称,该方法有效
第二个解决方案
使用相同配置的“ hhds6666.XXXXXXX.int:27027 ”创建一个直接连接。 因为,错误状态
"A primary with different host name [hhds6666.XXXXXXX.int:27027] found in server side."
任何一种都一定可以工作
答案 1 :(得分:0)
首先,在主要mongo实例上使用rs.status()检查主要和次要主机的主机名。根据错误,主要服务器名称会有所不同,因此请按照以下步骤更改主要或次要主机的名称。
cfg = rs.conf() cfg.members [0] .host =“ mongodb0.example.net:27017” rs.reconfig(cfg)
请参阅链接https://docs.mongodb.com/manual/tutorial/change-hostnames-in-a-replica-set/
答案 2 :(得分:0)
确保您指定的集合名称(如果您这样做了)区分大小写正确。
例如:您的集合可能称为“mySet”,但您将其称为“MySet”。
答案 3 :(得分:-1)
首先,设置集合的主要和次要成员。 示例:
AWS::DirectoryService::MicrosoftAD
AWS::DirectoryService::SimpleAD
AWS::ElastiCache::ReplicationGroup
AWS::IAM::User
AWS::KinesisFirehose::DeliveryStream
AWS::OpsWorks::App
AWS::OpsWorks::Stack
AWS::OpsWorks::Stack
AWS::RDS::DBCluster
AWS::RDS::DBInstance
AWS::Redshift::Cluster
然后启用以自签名证书作为身份验证方法的SSL协议。
我还设法通过使用v 1.3使它能够工作,该版本可以使用Mongo SRV连接字符串指定conf详细信息。