1. 程式人生 > 實用技巧 >golang的mgo庫帶賬號密碼連線mongodb

golang的mgo庫帶賬號密碼連線mongodb

// mongodbAuth project main.go
package main

import (
    "fmt"
    "os"

    "gopkg.in/mgo.v2"
)

func main() {
    fmt.Println("Hello World!")
    session := InitMongoSession()
    myDB := session.DB("config")
    collects, err := myDB.CollectionNames()
    if err != nil {
        fmt.Println("CollectionNames-error:
", err) os.Exit(0) } fmt.Println(collects) } func InitMongoSession() *mgo.Session { mHost := "127.0.0.1" mPort := "27017" //mDBName := "config" //你要連線的表,也可以後面再選,都行 mUsername := "admin" //mongodb的賬號 mPassword := "12345" //mongodb的密碼 session, err := mgo.Dial(mHost + ":" + mPort)
if err != nil { fmt.Println("mgo.Dial-error:", err) os.Exit(0) } session.SetMode(mgo.Eventual, true) myDB := session.DB("admin") //這裡的關鍵是連線mongodb後,選擇admin資料庫,然後登入,確保賬號密碼無誤之後,該連線就一直能用了 //出現server returned error on SASL authentication step: Authentication failed. 這個錯也是因為沒有在admin資料庫下登入
err = myDB.Login(mUsername, mPassword) if err != nil { fmt.Println("Login-error:", err) os.Exit(0) } //myDB = session.DB(mDBName) //如果要在這裡就選擇資料庫,這個myDB可以定義為全域性變數 session.SetPoolLimit(10) return session }