使用Golang和Robo3T连接到MongoDB ReplicaSet时出现问题

我正在努力连接到我的MongoDB副本集,但似乎没有任何工作。


我部署了具有 3 个节点的副本集,每个节点位于单独的 AWS 可用区上,但位于同一区域。


以下是我用于连接到副本集的代码。


    mongoURL := "mongodb://myuser:password@<publicIP>:27017,<publicIP>:27017,<publicIP>:27017/?replicaSet=replica01&authSource=admin"

    clientOptions := options.Client().ApplyURI(mongoURL)

    clientOptions = clientOptions.SetMaxPoolSize(100) //100 is default driver setting

    log.Println("Connection String: " + clientOptions.GetURI())

    client, err := mongo.Connect(ctx, clientOptions)

我还创建了DNS映射并使用它,但这也不起作用。

以下是连接网址

mongodb://adminuser:password@rs1.domain.com:27017,rs2.domain.com:27017,rs3.domain.com:27017/?replicaSet=replica01&authSource=admin


机器人3T

当我尝试使用公共IP将副本集与Robo3T连接时,我收到以下错误


无法连接到副本集“IP-RS”[公共 IP:27017]。集合的主数据库无法访问。


原因:集合的任何成员都不可访问。原因:连接失败


当我使用子域名连接到副本集时,我收到以下错误


无法连接到副本集“SRV 副本”[rs1.domain.com:27017]。集合的主数据库无法访问。


原因: 无法初始化 MongoWorker。原因:连接失败


慕妹3146593
浏览 198回答 1
1回答

叮当猫咪

这是解决方案。问题是主机名。我在配置副本集时使用了主机名。这是我的配置$ config = {&nbsp; _id : "mongo-cluster",&nbsp; &nbsp;members : [&nbsp; &nbsp; &nbsp; &nbsp;{_id : 0, host : "mongo-1:27017"},&nbsp; &nbsp; &nbsp; &nbsp;{_id : 1, host : "mongo-2:27017"},&nbsp; &nbsp; &nbsp; &nbsp;{_id : 2, host : "mongo-3:27017"},&nbsp; &nbsp;]}$ rs.initiate(config)溶液我用private-ip更改了。请注意,由于我的 3 个副本节点位于同一 AWS 区域但位于不同的可用区中,因此我使用私有 IP 在节点之间建立连接。hostname$ config = {&nbsp; _id : "replica01",&nbsp; &nbsp;members : [&nbsp; &nbsp; &nbsp; &nbsp;{_id : 0, host : "private-ip:27017"},&nbsp; &nbsp; &nbsp; &nbsp;{_id : 1, host : "private-ip:27017"},&nbsp; &nbsp; &nbsp; &nbsp;{_id : 2, host : "private-ip:27017"},&nbsp; &nbsp;]}rs0:PRIMARY> rs.reconfig(config)所有 3 个节点上的 MongoDB conf 设置File: /etc/mongod.conf&nbsp; &nbsp; net:&nbsp; &nbsp; &nbsp; port: 27017&nbsp; &nbsp; &nbsp; bindIp: 127.0.0.1, 172.16.1.x (private-ip)&nbsp; &nbsp; security:&nbsp; &nbsp; &nbsp; keyFile: /opt/mongo/mongo-keyfile&nbsp; &nbsp; replication:&nbsp; &nbsp; &nbsp; replSetName: replica01所有 3 个节点上的主机File: /etc/hosts&nbsp; &nbsp; 172.16.1.x&nbsp; &nbsp; mongo-1&nbsp; &nbsp; 172.16.1.x&nbsp; &nbsp; mongo-2&nbsp; &nbsp; 172.16.1.x&nbsp; &nbsp; mongo-3每台计算机的名称应与 /etc/hosts 文件中定义的名称匹配$ sudo nano /etc/hostname&nbsp;mongo-1&nbsp;复制副本状态> rs.status(){&nbsp; &nbsp; "set" : "replica01",&nbsp; &nbsp; "date" : ISODate("2021-03-13T12:42:45.971Z"),&nbsp; &nbsp; "myState" : 2,&nbsp; &nbsp; "term" : NumberLong(8),&nbsp; &nbsp; "syncSourceHost" : "172.16.1.x:27017",&nbsp; &nbsp; "syncSourceId" : 2,&nbsp; &nbsp; "heartbeatIntervalMillis" : NumberLong(2000),&nbsp; &nbsp; "majorityVoteCount" : 2,&nbsp; &nbsp; "writeMajorityCount" : 2,&nbsp; &nbsp; "votingMembersCount" : 3,&nbsp; &nbsp; "writableVotingMembersCount" : 3,&nbsp; &nbsp; "optimes" : {&nbsp; &nbsp; &nbsp; &nbsp; "lastCommittedOpTime" : {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; "ts" : Timestamp(1615639361, 1),&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; "t" : NumberLong(8)&nbsp; &nbsp; &nbsp; &nbsp; },&nbsp; &nbsp; &nbsp; &nbsp; "lastCommittedWallTime" : ISODate("2021-03-13T12:42:41.356Z"),&nbsp; &nbsp; &nbsp; &nbsp; "readConcernMajorityOpTime" : {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; "ts" : Timestamp(1615639361, 1),&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; "t" : NumberLong(8)&nbsp; &nbsp; &nbsp; &nbsp; },&nbsp; &nbsp; &nbsp; &nbsp; "readConcernMajorityWallTime" : ISODate("2021-03-13T12:42:41.356Z"),&nbsp; &nbsp; &nbsp; &nbsp; "appliedOpTime" : {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; "ts" : Timestamp(1615639361, 1),&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; "t" : NumberLong(8)&nbsp; &nbsp; &nbsp; &nbsp; },&nbsp; &nbsp; &nbsp; &nbsp; "durableOpTime" : {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; "ts" : Timestamp(1615639361, 1),&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; "t" : NumberLong(8)&nbsp; &nbsp; &nbsp; &nbsp; },&nbsp; &nbsp; &nbsp; &nbsp; "lastAppliedWallTime" : ISODate("2021-03-13T12:42:41.356Z"),&nbsp; &nbsp; &nbsp; &nbsp; "lastDurableWallTime" : ISODate("2021-03-13T12:42:41.356Z")&nbsp; &nbsp; },&nbsp; &nbsp; "lastStableRecoveryTimestamp" : Timestamp(1615639331, 1),&nbsp; &nbsp; "members" : [&nbsp; &nbsp; &nbsp; &nbsp; {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; "_id" : 1,&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; "name" : "172.16.1.x:27017",&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; "health" : 1,&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; "state" : 2,&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; "stateStr" : "SECONDARY",&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; "uptime" : 159132,&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; "optime" : {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; "ts" : Timestamp(1615639361, 1),&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; "t" : NumberLong(8)&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; },&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; "optimeDate" : ISODate("2021-03-13T12:42:41Z"),&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; "syncSourceHost" : "172.16.1.x:27017",&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; "syncSourceId" : 2,&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; "infoMessage" : "",&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; "configVersion" : 2,&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; "configTerm" : 8,&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; "self" : true,&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; "lastHeartbeatMessage" : ""&nbsp; &nbsp; &nbsp; &nbsp; },&nbsp; &nbsp; &nbsp; &nbsp; {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; "_id" : 2,&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; "name" : "172.16.1.x:27017",&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; "health" : 1,&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; "state" : 1,&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; "stateStr" : "PRIMARY",&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; "uptime" : 62213,&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; "optime" : {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; "ts" : Timestamp(1615639361, 1),&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; "t" : NumberLong(8)&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; },&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; "optimeDurable" : {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; "ts" : Timestamp(1615639361, 1),&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; "t" : NumberLong(8)&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; },&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; "optimeDate" : ISODate("2021-03-13T12:42:41Z"),&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; "optimeDurableDate" : ISODate("2021-03-13T12:42:41Z"),&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; "lastHeartbeat" : ISODate("2021-03-13T12:42:45.616Z"),&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; "lastHeartbeatRecv" : ISODate("2021-03-13T12:42:44.778Z"),&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; "pingMs" : NumberLong(1),&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; "lastHeartbeatMessage" : "",&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; "syncSourceHost" : "",&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; "syncSourceId" : -1,&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; "infoMessage" : "",&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; "electionTime" : Timestamp(1615477956, 1),&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; "electionDate" : ISODate("2021-03-11T15:52:36Z"),&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; "configVersion" : 2,&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; "configTerm" : 8&nbsp; &nbsp; &nbsp; &nbsp; },&nbsp; &nbsp; &nbsp; &nbsp; {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; "_id" : 3,&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; "name" : "172.16.1.x:27017",&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; "health" : 1,&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; "state" : 2,&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; "stateStr" : "SECONDARY",&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; "uptime" : 62213,&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; "optime" : {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; "ts" : Timestamp(1615639361, 1),&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; "t" : NumberLong(8)&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; },&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; "optimeDurable" : {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; "ts" : Timestamp(1615639361, 1),&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; "t" : NumberLong(8)&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; },&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; "optimeDate" : ISODate("2021-03-13T12:42:41Z"),&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; "optimeDurableDate" : ISODate("2021-03-13T12:42:41Z"),&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; "lastHeartbeat" : ISODate("2021-03-13T12:42:45.095Z"),&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; "lastHeartbeatRecv" : ISODate("2021-03-13T12:42:45.321Z"),&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; "pingMs" : NumberLong(0),&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; "lastHeartbeatMessage" : "",&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; "syncSourceHost" : "172.16.1.x:27017",&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; "syncSourceId" : 2,&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; "infoMessage" : "",&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; "configVersion" : 2,&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; "configTerm" : 8&nbsp; &nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; ],&nbsp; &nbsp; "ok" : 1,&nbsp; &nbsp; "$clusterTime" : {&nbsp; &nbsp; &nbsp; &nbsp; "clusterTime" : Timestamp(1615639361, 1),&nbsp; &nbsp; &nbsp; &nbsp; "signature" : {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; "hash" : BinData(0,"2ujactkx3HytFTyWhh+JkzyQy+8="),&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; "keyId" : NumberLong("6936222258616598531")&nbsp; &nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; },&nbsp; &nbsp; "operationTime" : Timestamp(1615639361, 1)}转到连接字符串mongoURL := "mongodb://username:pass@$172.16.1.x:27017,172.16.1.x:27017,172.16.1.x:27017/mydb?replicaSet=replica01&authSource=admin"
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go