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
    }
  • 相关阅读:
    MySQL 如何只导出 指定的表 的表结构和数据 ( 转 )
    速度之王 — LZ4压缩算法(三)
    lz4,pigz,gzip 3者比较
    用php实现百度网盘图片直链的代码分享
    hibernate的oracle配置(转)
    过滤器
    dom4j创建格式化的xml文件
    jstl表达式
    jsp内置对象和el表达式
    jsp 三大指令和动作标签
  • 原文地址:https://www.cnblogs.com/sunlong88/p/13386568.html
Copyright © 2011-2022 走看看