Go 中的 MongoDB 连接错误:目标计算机主动拒绝连接。使用的 Mongo 网站代码

MongoDB Connection Error in Go: Target Machine actively refusing connection. Code from Mongo website used

提问人:GoGuy 提问时间:9/15/2021 更新时间:9/17/2021 访问量:1655

问:

我正在努力使用 MongoDB 连接到 Facebook API。

我收到一个错误,指出:“服务器选择错误:服务器选择超时,当前拓扑:{ 类型:未知,服务器:[{ 地址:localhost:27017,类型:未知,最后一个错误:连接握手期间发生连接()错误:拨号 tcp [::1]:27017:connectex:无法建立连接,因为目标计算机主动拒绝了它。

为了修复此错误,我尝试切换到服务器“mongodb://localhost:27018”和“mongodb://localhost:27019”

我还扫描了我的代码以查找错误,但找不到任何东西。我对编程还很陌生,所以任何帮助或额外的建议/知识都是值得赞赏的。

代码如下:

package main

import (
    "context"
    "go.mongodb.org/mongo-driver/mongo"
    "go.mongodb.org/mongo-driver/mongo/options"
    "log"
)

// Client is exported Mongo Database client
var Client *mongo.Client

// ConnectDatabase is used to connect the MongoDB database
func ConnectDatabase() {
    log.Println("Database connecting...")
    // Set client options
    clientOptions := options.Client().ApplyURI("mongodb://localhost:27017")

    // Connect to MongoDB
    client,err := mongo.Connect(context.TODO(), clientOptions)
    Client = client
    if err != nil{
        log.Fatal(err)
    }

    // Check the connection
    err = Client.Ping(context.TODO(), nil)

    if err != nil {
        log.Fatal(err)
    }

    log.Println("Database Connected.")
}
数据库 MongoDB Go

评论

0赞 prasad_ 9/15/2021
您是否能够使用此 uri 字符串从任何其他工具(如 Compass 或 mongo shell)连接到数据库:“mongodb://localhost:27017”
0赞 GoGuy 9/16/2021
老实说,我不知道如何检查。这是我第一次连接到数据库。我需要下载 Compass / mongo shell 才能做到这一点吗?或者我可以去终端拿那些
0赞 prasad_ 9/16/2021
指南针待下载。根据您的数据库版本,shell(或 shell)可以包含在内,也可以作为工具的一部分下载。请参阅 MongoDB 手册。mongoshmongo
0赞 prasad_ 9/16/2021
尝试使用这篇文章中的上下文Golang & MongoDB QuickStart's Getting Started。更好的是,试试这个例子。默认情况下,客户端在“localhost”和 27017 端口上连接到 MongoDB。在从 shell、Compass 或 Golang 程序等客户端程序连接之前,请确保您的数据库已启动并运行。mongo
1赞 GoGuy 9/17/2021
谢谢你的建议!!我下载了 Compass 并在创建自己的 Atlas 集群后尝试了该示例。我能够正确连接到我的 Atlas 集群并从我的集群中打印出数据库。所以示例代码起作用了!但是,我尝试使用相同的代码通过将我的 Atlas URI 换成 mongodb://localhost:27017 来连接到 mongoDB URI,并且在我写这篇文章时它给出了与之前相同的“主动拒绝”错误。所以这一定意味着与mongoDB或27017端口的 mongodb://localhost:27017 链接有问题..?我想对了吗?

答:

0赞 GoGuy 9/17/2021 #1

找到了非常简单的答案。我没有下载 MongoDB 社区服务器并将其安装为服务!

安装后,我用 http://localhost:8000/ 运行了我的代码,它立即起作用了。

链接在这里: https://www.mongodb.com/try/download/community