由于网络超时导致Mongodb服务器选择错误

sqserrrh  于 2023-11-14  发布在  Go
关注(0)|答案(3)|浏览(169)

我有一个使用Mongo DB的Go程序。我在家里的电脑上运行它,经常出现这个错误:
恐慌:服务器选择错误:服务器选择超时,当前拓扑:{类型:ReplicaSetNoPrimary,服务器:[{地址:cluster0-shard-00-00.tvm1o.mongodb.net:27017,类型:未知,最后一个错误:连接握手期间出现connection()错误:dial tcp 3.216.112.85:27017:i/o超时},{地址:cluster0-shard-00-01.tvm1o.mongodb.net:27017,类型:未知,最后一个错误:connection()error occurred during connection handshake:dial tcp 34.197.85.254:27017:i/o timeout },{ Addr:cluster0-shard-00-02.tvm1o.mongodb.net:27017,Type:Unknown,Last error:connection()error occurred during connection handshake:dial tcp 18.206.5.2:27017:i/o timeout },] }
这是它中断的确切代码:

if err := clientMongo.Ping(context.TODO(), readpref.Primary()); err != nil {
    panic(err)
}

字符集
我知道这是一个连接超时,但我不明白为什么在一个简单的客户端连接过程中会发生这种情况。我做了一个速度测试,我目前的上传速度是22 Mbps,我没有上传大的JSON数组或任何东西。当我试图连接到客户端时,它总是发生。所以我想知道这是否是因为我的互联网连接或Mongo端的东西造成的?

yeotifhr

yeotifhr1#

您可能需要将IP添加到MongoDB的白名单中。

fzwojiic

fzwojiic2#

有几件事
1.我们需要查看创建连接的完整代码。我假设您使用的正是此处文档中的内容?
1.你应该尝试连接mongosh和Compass。如果你有其他工具的问题,那么可能是你的Atlas集群或集群上的安全设置,而不是你的应用程序代码。
1.也就是说,大约95%的时间问题是白名单或数据库用户。你有一个用户创建在数据库访问区域的用户界面,有管理/读/写任何数据库?你的IP在白名单?
如果3是好的,2不起作用,在MongoDB的UI的绿色聊天按钮中有免费的Atlas支持。

yrwegjxp

yrwegjxp3#

在网络访问中,将新IP地址设置为0.0.0.0/0

相关问题