gpt4 book ai didi

mongodb - 无法将mongodb与GoLang连接

转载 作者:行者123 更新时间:2023-12-01 22:23:57 25 4
gpt4 key购买 nike

我无法将mongodb与golang连接。

telnet mongoHost 27017很好

ping mongoHost它很不错

MongoHost是我的 private 主机,不是docker

Mongodb版本:2.4.3

MongoDriver:1.3.2

Go版本:go版本go1.14.1 darwin / amd64

作业系统: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服务器选择错误:服务器选择超时,当前拓扑:{类型:未知,服务器:[{地址:mongoHost:27017,类型:独立,状态:已连接,平均RTT:13849652}, ]}

最佳答案

您设置的客户端设置是矛盾的。您正在建立与单个副本集成员的直接连接,或者与具有优先读取优先级的副本集建立连接。我建议将其更改为简单的内容:

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

另请参见 mongo-driver: Connect以查看有关如何连接的各种代码示例。

Mongodb版本:2.4.3

请升级您的MongoDB服务器版本。 MongoDB Go驱动程序版本的最不兼容版本是MongoDB服务器版本2.6。有关更多信息,请参见 MongoDB Compatibility chart

MongoDB v2.4于2013年(7年前)发布,当前版本为4.2。我强烈建议您升级,请参阅 Upgrade MongoDB to v2.6,然后进行升级,直到满足您要求的最新版本为止。

关于mongodb - 无法将mongodb与GoLang连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61170582/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com