golang中与远程mongodb服务器的连接失败,导致身份验证错误

前端之家收集整理的这篇文章主要介绍了golang中与远程mongodb服务器的连接失败,导致身份验证错误前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我想在golang中连接到远程 mongodb服务器并在数据库添加数据.它给我的错误如下:
SASL身份验证步骤中服务器返回错误:身份验证失败.

码:

package main

import (
    "fmt"
    "gopkg.in/mgo.v2"
    "gopkg.in/mgo.v2/bson"
    "log"
    // "os"
)

type Person struct {
    Name  string
    Phone string
}

func main() {

    session,err := mgo.Dial("mongodb://<dbuser>:<dbpassword>@ds041154.mongolab.com:41154/location")

    if err != nil {
        fmt.Println(err)
    } else {
        fmt.Println("Session created")
    }

    // Optional. Switch the session to a monotonic behavior.
    session.SetMode(mgo.Monotonic,true)

    c := session.DB("location").C("people")
    err = c.Insert(&Person{"Ale","+55 53 8116 9639"},&Person{"Cla","+55 53 8402 8510"})
    if err != nil {
        log.Fatal(err)
    }

    result := Person{}
    err = c.Find(bson.M{"name": "Ale"}).One(&result)
    if err != nil {
        log.Fatal(err)
    }

    fmt.Println("Phone:",result.Phone)

}

对此有任何帮助表示赞赏.

我得到了类似的错误,但我发现我输入了错误登录凭据.

这段代码对我有用:

package main

import (
    "fmt"
    "time"

    "gopkg.in/mgo.v2"
)

//const MongoDb details
const (
    hosts      = "ds026491.mongolab.com:26491"
    database   = "messagingdb"
    username   = "admin"
    password   = "youPassword"
    collection = "messages"
)

func main() {

    info := &mgo.DialInfo{
        Addrs:    []string{hosts},Timeout:  60 * time.Second,Database: database,Username: username,Password: password,}

    session,err1 := mgo.DialWithInfo(info)
    if err1 != nil {
        panic(err1)
    }

    col := session.DB(database).C(collection)

    count,err2 := col.Count()
    if err2 != nil {
        panic(err2)
    }
    fmt.Println(fmt.Sprintf("Messages count: %d",count))
}

它也是在Github

猜你在找的Go相关文章