mgo 连接需要授权登录的mongodb

原创 2016年09月29日 17:35:28

mgo 连接需要授权登录的mongodb

使用golang mgo连接到需要授权登录的mongodb

  • 测试环境
  • mongodb设置
  • golang mgo环境
  • 用例代码

搭建测试环境

windows 7, virtualbox, ubuntu 16.04LTS
  1. 安装[virtualbox]
  2. 安装虚拟机[ubuntu]
  3. 安装golang

    sudo apt-get update
    sudo apt-get install golang
    
  4. 安装mongodb

    sudo apt-get install mongodb
    mogod --version
    

    db version v2.6.10
    2016-09-29T16:54:46.199+0800 git version: nogitversion
    2016-09-29T16:54:46.200+0800 OpenSSL version: OpenSSL 1.0.2g 1 Mar 2016

mongodb设置

上面步骤安装mongdb结束之后会自动启动

ps -aef | grep mongod

mongodb 626 1 0 01:05 ? 00:05:01 /usr/bin/mongod –config /etc/mongodb.conf

可以看到mongod使用 /etc/mongdb.conf启动

sudo vi /etc/mongodb.conf

1 # mongodb.conf
2
3 # Where to store the data.
4 dbpath=/var/lib/mongodb
5
6 #where to log
7 logpath=/var/log/mongodb/mongodb.log
8
9 logappend=true
10
11 bind_ip = 192.168.6.1
12 port = 27017
13
14 # Enable journaling, http://www.mongodb.org/display/DOCS/Journaling
15 #journal=true
16
17 # Enables periodic logging of CPU utilization and I/O wait
18 #cpu = true
19
20 # Turn on/off security. Off is currently the default
21 #noauth = true
22 auth = true

上面是我修改后的,改动了bind_ip, auth
但是改动之前,需要首先建立一个管理员账号,否则auth实际上是不起作用的

使用mongo连接本机数据库,添加管理员账号

mongo
use admin
db.addUser({user:"username",
            pwd: "yourpassword",
            roles: [ "userAdminAnyDatabase",
                     "dbAdminAnyDatabase",
                     "readWriteAnyDatabase"
                   ]
           })
quit()
sudo service mongodb stop

这样在添加了管理员账号之后,将默认方式启动的mongodb服务停止

ps -aef | grep mongodb

修改 /etc/mongodb.conf
如果bind_ip 127.0.01 只能本虚拟机访问
可以更改默认数据库文件目录,但是需要保证mongodb有权限rw
最重要的需要把auth=true

service mongodb start
mongo -u "useryouadd" --authenticationDatabase admin -p

输入刚刚设置的密码,看看是否可以连接上

golang mgo环境

sudo apt-get install golang
cd
mkdir GoTest
export GOPATH=`pwd`
go get gopkg.in/mgo.v2
echo "export GOPATH=`pwd`"

上面命令执行结束,golang,mgo都已经安装好了

用例代码

cd $GOPATH
mkdir mtest
cd mtest

mgo 提供了几个建立session的接口,我使用了DialWithInfo

package main

import (
    "fmt"
    "gopkg.in/mgo.v2"
    "gopkg.in/mgo.v2/bson"
    "time"
)

func main() {
    dialInfo := &mgo.DialInfo{
        Addrs:     []string{"192.168.6.122"},
        Direct:    false,
        Timeout:   time.Second * 1,
        Database:  "yourdatabase",
        Source:    "admin",
        Username:  "username",
        Password:  "password",
        PoolLimit: 4096, // Session.SetPoolLimit
    }
    session, err := mgo.DialWithInfo(dialInfo)
    if nil != err {
        panic(err)
    }
    defer session.Close()
}

下一步就是CRUD

未完...
版权声明:本文为博主原创文章,未经博主允许不得转载。未授权转载按照千字千元收费。

golang mgo 使用

golang使用mongodb,目前比较多人用的是mgo((pronounced as mango)github地址 官网 文档直接上官方example的代码Example首先是要获得模块 go ...
  • oqqYuan1234567890
  • oqqYuan1234567890
  • 2017年04月15日 18:47
  • 1953

mgo使用指南

mgo简介 mgo(音mango)是MongoDB的Go语言驱动,它用基于Go语法的简单API实现了丰富的特性,并经过良好测试。 官方网站:http://labix.org/mgo。 golang.t...
  • hehexiaoxia
  • hehexiaoxia
  • 2016年12月29日 14:32
  • 1337

golang 使用mgo 连接MongoDB

golang访问MongoDB数据库。
  • Crazy__Programmer
  • Crazy__Programmer
  • 2014年03月20日 16:56
  • 13842

mgo使用指南-高级篇(长连接/重连)

Keeping an mgo (any other db engine) connection alive I have yet to write a service that would k...
  • scut1135
  • scut1135
  • 2016年01月16日 14:59
  • 3692

golang 连接 mongodb dial 报错 server returned error on SASL authentication step: Authencication failed.

解决这个问题,要看go语言的文档https://godoc.org/gopkg.in/mgo.v2#Dial The username and password provided in the U...
  • carterslam
  • carterslam
  • 2016年12月22日 16:18
  • 1507

java连接远程带有密码的mongodb数据库

java连接远程带有密码的mongodb数据库    java连接远程带有密码的mongodb数据库,这个是我们研究java以及mongodb数据库的人都必须研究的,mongo我们可以在远程设置...
  • konglongaa
  • konglongaa
  • 2016年11月21日 19:40
  • 3541

storm - 可靠机制

Storm 可靠性剖析
  • Crazy__Programmer
  • Crazy__Programmer
  • 2014年08月10日 21:05
  • 4695

Go实战--golang中使用MongoDB(mgo)

生命不止,继续 go go go !!!昨天分享了golang如何操作redis数据库,那今天就介绍一下golang中如何使用mongodb数据库。何为MongoDB?简介 MongoDB 是由C+...
  • wangshubo1989
  • wangshubo1989
  • 2017年07月14日 13:29
  • 8087

MongoDB的Go语言驱动----mgo的使用指南

原文地址:https://my.oschina.net/ffs/blog/300148 mgo简介 mgo(音mango)是MongoDB的Go语言驱动,它用基于Go语法的简单API实现了丰富...
  • skh2015java
  • skh2015java
  • 2016年11月04日 12:02
  • 2979

MongoDB用户授权和管理

1、mongodb安装好后第一次进入是不需要密码的,也没有任何用户,通过shell命令可直接进入,cd到mongodb目录下的bin文件夹,执行命令./mongo即可 运行如下:[root@name...
  • yu757371316
  • yu757371316
  • 2017年02月15日 15:40
  • 2464
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:mgo 连接需要授权登录的mongodb
举报原因:
原因补充:

(最多只允许输入30个字)