Go 并且 MongoDB 连接将无法使用 panic log "no reachable server"

Go and MongoDB connection won't work with panic log "no reachable server"

我正在使用 mGo 作为我的 Go Web App 到另一个 MongoDB 系统的驱动程序。所以我不是运行 Mongo 在同一个系统上。 (URL 不是本地主机)。

但是,我收到 "panic: no reachable servers" 错误。

这是 Go 服务器启动时运行的测试函数:

dialInfo, err0 := mgo.ParseURL("mongodb://1234MY456IP:27017,27018")
if err0 != nil {
    panic(err0)
}
dialInfo.Direct = true
dialInfo.FailFast = true
session, err := mgo.DialWithInfo(dialInfo)
if err != nil {
    panic(err)
}
defer session.Close()

类似问题的答案之一是确保 MongoDB 在 netstatps 上 运行。

除了 ps 和 bash,我在 ps 上没有看到任何进程 运行。我也没有在 netstat 上看到它。

我已经 运行 sudo 服务 mongod start/stop/restart 并使用 mongo shell 进行了测试。我做错了什么?

Err0 和 err 打印相同的错误信息。

首先,URI 应遵循 mgo URI 格式

[mongodb://][user:pass@]host1[:port1][,host2[:port2],...][/database][?options]

有关详细信息,请参阅 mgo.v2 Dial func

如果您要连接到 MongoDB Atlas(或者您的服务器需要 SSL),另请参阅 Connecting to MongoDB Atlas using mgo

其次,确保您可以从应用程序服务器访问 MongoDB 服务器。您可以使用 mongo shell 来测试连接(暂时消除您的代码问题)。