一尘不染

Go和MongoDB连接不适用于紧急日志“无法访问的服务器”

go

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

但是,出现“紧急:没有可访问的服务器”错误。

这是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在netstat或上运行ps

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

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

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


阅读 194

收藏
2020-07-02

共1个答案

一尘不染

首先,URI应该遵循mgo URI格式

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

有关更多信息,请参见mgo.v2 Dial func

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

2020-07-02