为什么 mongomirror 无法启动与目标源的连接?[服务器选择超时]



我想将数据库从一个集群迁移到另一个集群。源和目的地在同一个VPC内,但我一直收到Unknown, Last error: connection() error occured during connection handshake错误。

mongomirror --host "Replicaset-Name/host-0.domain.com:27017,host-1.domain.com:27017,host-2.domain.com:27017" 
--username "<username>" 
--password "<password>" 
--authenticationDatabase "admin" 
--destination "Replicaset-Name/mongodb-0.mongodb-svc.mongodb.svc.cluster.local:27017,mongodb-1.mongodb-svc.mongodb.svc.cluster.local:27017,mongodb-2.mongodb-svc.svc.cluster.local:27017" 
--destinationUsername "<username>" 
--destinationPassword "<password>"

输出:

mongomirror version: 0.12.5
git version: 6e5a5489944845758420e8762dd5e5a89d2e8654
Go version: go1.16.9
os: linux
arch: amd64
compiler: gc
2022-08-16T16:53:29.353+0000    Source isMaster output:  {IsMaster:true MinWireVersion:0 MaxWireVersion:7 Hosts:[host-0.domain.com:27017 host-1.domain.com:27017 host-2.domain.com:27017}
2022-08-16T16:53:29.353+0000    Source buildInfo output: {Version:4.0.12 VersionArray:[4 0 12 0] GitVersion:5776e3cbf9e7afe86e6b29e22520ffb6766e95d4 OpenSSLVersion: SysInfo: Bits:64 Debug:false MaxObjectSize:16777216}
2022-08-16T16:55:29.356+0000    Error initializing mongomirror: could not initialize destination connection: could not connect to server: server selection error: server selection timeout, current topology: { Type: ReplicaSetNoPrimary, Servers: [{ Addr: mongo-1.mongo-svc.mongodb.svc.cluster.local:27017, Type: Unknown, Last error: connection() error occured during connection handshake: EOF }, { Addr: mongo-0.mongo-svc.mongodb.svc.cluster.local:27017, Type: Unknown, Last error: connection() error occured during connection handshake: EOF }, { Addr: mongo-2.mongo-svc.mongodb.svc.cluster.local:27017, Type: Unknown, Last error: connection() error occured during connection handshake: EOF }, ] }

我已经测试了与mongosh的连接。它在建立连接时没有问题。

mongosh --host mongodb-1.mongodb-svc.mongodb.svc.cluster.local:27017 --username <username>

那么我可能错过了什么呢?

谢谢!

是使用TLS运行的目标集群。如果没有,你可以试试为群集创建自签名证书,并使其使用TLS运行。请参阅以下线程:Mongomiror从图集到本地副本设置

或者,如果它是一台开发机器,那么您可以在添加--noTLS后尝试运行mongomirror。完整命令:

mongomirror --host "Replicaset-Name/host-0.domain.com:27017,host-1.domain.com:27017,host-2.domain.com:27017" 
--username "<username>" 
--password "<password>" 
--authenticationDatabase "admin" 
--destination "Replicaset-Name/mongodb-0.mongodb-svc.mongodb.svc.cluster.local:27017,mongodb-1.mongodb-svc.mongodb.svc.cluster.local:27017,mongodb-2.mongodb-svc.svc.cluster.local:27017" 
--destinationUsername "<username>" 
--destinationPassword "<password>"
--noTLS

最新更新