无法将Mongodb 2.4与GoLang连接

2wnc66cl  于 2023-09-28  发布在  Go
关注(0)|答案(2)|浏览(78)

我无法连接mongodb和golang。
telnet mongoHost 27017可以了
ping mongoHost它是okey
MongoHost是我的私有主机,不是docker
Mongodb版本:2.4.3
MongoDriver:1.3.2
Go版本:go版本go1.14.1达尔文/amd 64
操作系统:Mac
这是我的连接代码

clientOptions := &options.ClientOptions{}
clientOptions.SetServerSelectionTimeout(4 * time.Second)
clientOptions.SetDirect(true)
clientOptions.SetAppName("tests")
clientOptions.SetHosts([]string{"mongoHost:27017"})
clientOptions.SetReadPreference(readpref.Secondary())
client, err := mongo.NewClient(clientOptions)
if err != nil {
    log.Fatal(err)
}
ctx, _ := context.WithTimeout(context.Background(), 5*time.Second)
err = client.Connect(ctx)
if err != nil {
    log.Fatal(err)
}

我改变了超时,但它不改变连接每次我得到这个错误:

2020/04/12 14:06:19 server selection error: server selection timeout, current topology: { Type: Unknown, Servers: [{ Addr: mongoHost:27017, Type: Standalone, State: Connected, Average RTT: 13849652 }, ] }
jhkqcmku

jhkqcmku1#

您设置的客户端设置相互矛盾。您要建立到单个复制集成员的直接连接,或者要建立到具有读取首选项辅助的复制集成员的连接。我建议把它改成简单的:

client, err := mongo.NewClient(options.Client().ApplyURI("mongodb://mongoHost:27017/?replicaSet=FOOBAR"))

mongo-driver:连接以查看有关如何连接的各种代码示例。
Mongodb版本:2.4.3
请升级MongoDB服务器版本。MongoDB Go驱动程序版本的最低兼容版本是MongoDB服务器版本2.6。有关更多信息,请参阅MongoDB兼容性图表。
MongoDB v2.4发布于2013年(7年前),目前版本为4.2。我强烈建议升级,请参阅Upgrade MongoDB to v2.6,然后按照升级,直到最新的版本,满足您的要求。

相关问题