zoukankan      html  css  js  c++  java
  • 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
    }
  • 相关阅读:
    kubeadm升级证书-集群已GG
    匿名内部类
    JAVA中Integer的==和equals注意
    编写高效优雅安全Java程序的常见原则
    图解排序算法(二)之希尔排序
    String常见问题
    ActiveMQ 2
    消息中间件概述和AaciveMQ 1
    类加载器-5
    使用MyBatis编写Dao的两种语法
  • 原文地址:https://www.cnblogs.com/sunlong88/p/13386568.html
Copyright © 2011-2022 走看看