mongodb之master/slave模式 + auth

本文涉及的产品
云数据库 MongoDB,通用型 2核4GB
简介:

## 主从带认证:

主服务器和从服务器必须开启安全认证:--auth, 主服务器和从服务器的admin数据库中必须有全局用户, 然后主服务器的local数据库和从服务器的local数据均有名为repl且密码相同的用户名。

注:local:本地数据库 这个数据库不会同步,主要存放同步的信息。在MongoDB2.0.2版本测试时,从服务器的admin数据库中没有全局用户时也能进行复制(Deven:我们就是采用这个方式,

从服务器admin数据库没有建立用户),尽管admin中无用户,客户端连接此服务器不进行验证(即--auth参数失效),但从服务器的--auth必须指定。既然启用了--auth,就应该在从服务器的

admin中增加一个用户。


### 准备工作

  • 创建一个全局账户

1
2
3
4
5
> use admin
switched to db admin
> db.addUser("root","zhuima")
WARNING: The 'addUser' shell helper is DEPRECATED. Please use 'createUser' instead
Successfully added user: { "user" : "root", "roles" : [ "root" ] }


  • 分别在master/slave的local数据库下创建一个名为repl的账户,并设置密码相同

1
2
3
4
5
> use local
switched to db local
> db.addUser("repl","zhuima")
WARNING: The 'addUser' shell helper is DEPRECATED. Please use 'createUser' instead
Successfully added user: { "user" : "repl", "roles" : [ "dbOwner" ] }


### 目录步骤:

- 1、master搭建完毕

- 2、slave搭建完毕

- 3、master配置文件

- 4、slave配置文件

- 5、要点

- 6、不适合一致性要求实时的场景


### 具体步骤:

- 1、master搭建完毕

参考:http://lovelace.blog.51cto.com/1028430/1440988


- 2、slave搭建完毕

参考:http://lovelace.blog.51cto.com/1028430/1440988


- 3、master配置文件

1
2
3
4
5
6
7
8
9
10
[root@redis ~]# sed -e '/^$/d;/^#/d' /etc/mongodb.conf 
bind_ip = 192.168.58.30
port = 27017
fork = true
pidfilepath = /var/run/mongodb/mongodb.pid
logpath = /var/log/mongodb/mongodb.log
dbpath =/mydata/data
journal = true
auth = true# 开启认证模式
master = true                   # 指定该mongodb为master模式


- 4、slave配置文件

1
2
3
4
5
6
7
8
9
10
11
[root@localhost ~]$ sed -e '/^$/d;/^#/d' /etc/mongodb.conf 
bind_ip = 192.168.58.10
port = 27017
fork = true
pidfilepath = /var/run/mongodb/mongodb.pid
logpath = /var/log/mongodb/mongodb.log
dbpath = /mydata/data
journal = true
auth = true   # 开启认证模式
slave = true   # 指定该mongodb为slave模式
source = 192.168.58.30:27017   # 指定master服务器


- 5、要点

 - 首先要在master的local数据库中创建名为repl的账户,并设置密码

 - 从服务器上和master一样 创建名为repl的账户,并设置和master上一样的密码

 - 然后创建一个全局账户(管理账户,开启同步即可)


- 6、先后重启master\slave服务器,然后观察日志情况(要有几分钟等待时间)


- 7、检查同步情况

1
2
3
4
5
6
> db.printReplicationInfo()
this is a slave, printing slave replication info.
source:   192.168.58.30:27017
  syncedTo: Fri Jul 18 2014 10:22:31 GMT+0200 (CEST)
  = 22 secs ago (0.01hrs)    # 这个是指延迟时长
>


- 8、手工同步

1
2
use admin;
db.runCommand ( { "resync": 1 } )



参考文章:

***/demo_c161_i64169.html



### 后记

  •  mongodb官方已经不再推荐使用master/salve模式的结构

  • 官方推荐使用replica_set复制集模式

  • 仅供参考


本文转自lovelace521 51CTO博客,原文链接:http://blog.51cto.com/lovelace/1441040,如需转载请自行联系原作者
相关实践学习
MongoDB数据库入门
MongoDB数据库入门实验。
快速掌握 MongoDB 数据库
本课程主要讲解MongoDB数据库的基本知识,包括MongoDB数据库的安装、配置、服务的启动、数据的CRUD操作函数使用、MongoDB索引的使用(唯一索引、地理索引、过期索引、全文索引等)、MapReduce操作实现、用户管理、Java对MongoDB的操作支持(基于2.x驱动与3.x驱动的完全讲解)。 通过学习此课程,读者将具备MongoDB数据库的开发能力,并且能够使用MongoDB进行项目开发。   相关的阿里云产品:云数据库 MongoDB版 云数据库MongoDB版支持ReplicaSet和Sharding两种部署架构,具备安全审计,时间点备份等多项企业能力。在互联网、物联网、游戏、金融等领域被广泛采用。 云数据库MongoDB版(ApsaraDB for MongoDB)完全兼容MongoDB协议,基于飞天分布式系统和高可靠存储引擎,提供多节点高可用架构、弹性扩容、容灾、备份回滚、性能优化等解决方案。 产品详情: https://www.aliyun.com/product/mongodb
相关文章
|
4月前
|
存储 NoSQL MongoDB
MongoDB 助力移动式汽车保养运营模式优化,将开发请求减少 90%
MongoDB针对初级,中级及熟练的技术开发人员推出系列技术文章与行业案例。深入浅出地剖析MongoDB产品基础原理,使用技巧,典型行业场景及应用,还有Code Demo及线上线下活动推荐!
4843 1
MongoDB 助力移动式汽车保养运营模式优化,将开发请求减少 90%
|
11月前
|
存储 传感器 分布式计算
「MongoDB」时序数据库和MongoDB第二部分-模式设计最佳实践
「MongoDB」时序数据库和MongoDB第二部分-模式设计最佳实践
|
11月前
|
存储 传感器 分布式计算
「时序数据库」时序数据库和MongoDB第二部分-模式设计最佳实践
「时序数据库」时序数据库和MongoDB第二部分-模式设计最佳实践
|
NoSQL MongoDB
《Data as a Service - 数据即服务 -- MongoDB⾼级应⽤模式》电子版地址
Data as a Service - 数据即服务 -- MongoDB⾼级应⽤模式
83 0
《Data as a Service - 数据即服务 -- MongoDB⾼级应⽤模式》电子版地址
|
NoSQL 数据库 数据库管理
|
NoSQL MongoDB 网络安全
|
新零售 存储 NoSQL
MongoDB 进阶模式设计
原文链接:http://www.mongoing.com/mongodb-advanced-pattern-design   12月12日上午,TJ在开源中国的年终盛典会上分享了文档模型设计的进阶技巧,就让我们来回顾一下吧: —————————————————————————————————————————————————————————- 从很久以前,我就开始接触开源产品:从最开始的使用、受益者到后来的贡献者,到现在的热情推广者。
1630 0
|
NoSQL 数据库 Windows
mongoDB windows reinstall add auth
Mongodb默认启动是不带认证,也没有账号,只要能连接上服务就可以对数据库进行各种操作,这样可不行。现在,我们得一步步开启使用用户和认证。   第一步,我们得定位到mongodb的安装目录。我本机的是C:\mongodb。
693 0