gpt4 book ai didi

MongoDB Atlas Golang mgo包 "No reachable servers"错误

转载 作者:数据小太阳 更新时间:2023-10-29 03:36:04 32 4
gpt4 key购买 nike

尝试连接到我的 MongoDB Atlas 数据库时,我不断收到以下错误。

no reachable servers
exit status 1

我正在运行与 mgo 兼容的 MongoDB 3.4 版。我已将 MongoDB Atlas 上的所有 IP 地址列入白名单,包括我自己的。
我在 MongoDB Atlas 上创建了一个名为 'root' 的用户,具有管理员权限。
我在 Ubuntu 18.04 上运行,我已将我的 DNS 名称服务器设置为 8.8.8.8。
我正在使用来自 github.com/globalsign/mgomgo 社区支持版本。
我的代码如下:

package main

import (
"fmt"
"log"

"github.com/globalsign/mgo"
"github.com/globalsign/mgo/bson"
)

func main() {
database := "bookstore"
collection := "books"
user := "root"
pword := "root"
url := "mongodb://" + user + ":" + pword + "@<prefix>.mongodb.net:27017/" + database + "?w=majority"

session, err := mgo.Dial(url)
if err != nil {
log.Fatal(err)
} else {
fmt.Println("Success.")
}
}

我查看了以下问题。这些不能解决我的问题:
CreateSession: no reachable servers - mgo
How to solve panic: no reachable servers
Connecting to MongoDB Atlas using Golang mgo: Persistent no reachable server to replica set
Golang / MGO -- panic: no reachable servers
No reachable servers on static linked go binary
Go and MongoDB connection won't work with panic log "no reachable server"
No reachable servers on static linked go binary
How to use new URL from mongodb 3.6 to connect from golang
How to connect to remote Mongodb server
非常感谢任何帮助!

最佳答案

一个问题是 MongoDB Connection String URI你用来连接到Atlas簇。

MongoDB连接字符串格式有两种:

DNS 种子列表格式较短,因为它利用 DNS 发现可用服务器。为了利用 DNS 种子列表,请使用 mongodb+srv: 的连接字符串前缀,而不是标准的 mongodb:

根据您发布的代码段,您似乎在混合使用这两种格式。如果您尝试使用 DNS 种子列表格式,则需要指定 mongodb+srv:,如果您尝试使用标准格式,则需要指定其他主机。例如:

"mongodb://FOO-shard-00-00-BAR.mongodb.net:27017,FOO-shard-00-01-BAR.mongodb.net:27017,FOO-shard-00-02-BAR.mongodb.net:27017/test?replicaSet=FOO-shard-0"

关于这一点,您还使用了 globalsign/mgo司机。目前,它不支持 DNS 种子列表格式,请参阅 globalsign/mgo/issues#112 .此外,globalsign/mgo 目前仅对 MongoDB v4.0+ 提供实验性支持。

你可以尝试使用mongo-go-driver相反,如果您打算使用 DNS 种子列表连接格式,和/或使用 MongoDB v3.6+(目前最新版本的 MongoDB 是 v4.2)

关于MongoDB Atlas Golang mgo包 "No reachable servers"错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57632805/

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