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
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM