我想在golang中连接到远程
mongodb服务器并在数据库中添加数据.它给我的错误如下:
SASL身份验证步骤中服务器返回错误:身份验证失败.
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