mongodb之master/slave模式 + auth

## 主从带认证:

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

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

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

admin中增加一个用户。

### 准备工作

  • 创建一个全局账户
> 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的账户,并设置密码相同
> 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配置文件

[[email protected] ~]# 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配置文件

[[email protected] ~]$ 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、检查同步情况

> 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、手工同步

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

参考文章:

***/demo_c161_i64169.html

### 后记

  • mongodb官方已经不再推荐使用master/salve模式的结构
  • 官方推荐使用replica_set复制集模式
  • 仅供参考
时间: 2024-08-03 00:19:36

mongodb之master/slave模式 + auth的相关文章

mongodb之master/slave模式

### mongodb的主从配置(不带auth认证) ### 注意事项: - 服务器节点之前时间要同步 - 开启防火墙的一定要允许通过相关端口 - 开启selinux的也要进行设置 - 建立双击互信模式最好不过 ### master配置文件 - 添加了master = true 这一行即可 - 多网卡机器bind_ip这一行尽可能写成一个具体地址(最好写内网地址),因为slave上是根据这个同步的 [[email protected] ~]# sed -e '/^#/d;/^$/d' /etc/

k8s版jenkins中master/slave模式

k8s环境: master 192.168.0.91 node 192.168.0.92 下面所有操作都是在node:192.168.0.92上进行 生成自定义Jenkins master镜像 原始的Jenkins master镜像并不符合我们当前需求,所以在原始镜像的基础上做了一些改变,这一步并不是必须的,主要是看具体需求 下载原始镜像 链接:https://pan.baidu.com/s/14z5BnFAXYoMnDoXbiNgmuQ 提取码:ecsq 导入镜像 docker load <

jenkins master/slave模式

master是主机,只有master装jenkins slave是小弟机无需装jenkins,主要执行master分配的任务 一.新建slave 1.新建slave的方法:点击magian jenkis---magian nodes 以下设置,需要注意下 启动方式,新版的jenkins只有一个选项,如下图,需要去开启 magian jenkis下有一个全局安全配置,代理配置,选随机 2.slave主动向master发起连接-注册 2.1 下载连接 2.2如果希望小弟机,一开机就连上,安装一个服务

Redis 的 master/slave 复制

Redis 的 master/slave 复制:    Redis 的 master/slave 数据复制方式可以是一主一从或者是一主多从的方式,Redis 在 master 是非阻塞模式,也就是说在 slave 执行数据同步的时候,master 是可以接受客户端的 请求的,并不影响同步数据的一致性,然而在 slave 端是阻塞模式的,slave 在同步 master 数据时,并不能够响应客户端的查询  Redis 的 master/slave 模式下,master 提供数据读写服务,而 sla

MySQL的Master/Slave集群安装和配置

本文讲述MySQL的Master/Slave集群安装和配置,安装的版本是最新的稳定版本GA 5.6.19. 为了支持有限的HA,我们使用Master/Slave简单的读写分离集群.有限的HA是指当Master不可用时,数据不会丢失,但在Master宕机的情况下是不可写的,必须手工处理故障.如果要支持更高的可用性,可以使用两台Master来做热切换. Master和Slave的MySQL安装是相同的,只是my.cnf的配置不同,需要配置二进制日志文件复制. 没有特殊说明,命名中带#的为root用户

Jenkins设置Master/Slave

说明:通过master/slave模式,可以在master节点上统一管理其他slave节点. 下面说明一步步实现master/slave模式. 第一步:以管理员登录jenkins.点击"系统管理/管理节点". 注:一般用户也可以添加节点.IE输入:http://ip:port/jenkins/computer/即可介入节点视图. 第二步:选择"新建节点".如果是首次创建,则只有"dumb slave"可用,否则还可从现有节点复制. 第三步:选择&

MongoDB学习笔记——Master/Slave主从复制

Master/Slave主从复制 主从复制MongoDB中比较常用的一种方式,如果要实现主从复制至少应该有两个MongoDB实例,一个作为主节点负责客户端请求,另一个作为从节点负责从主节点映射数据,提供数据备份,客户端读取等,推荐一主多从模式 MongoDB主从复制的实现方式: 主节点的操作会被记录为oplog,存储在系统数据库local的集合oplog.$main中,这个集合中的每个文档都代表主节点的一个操作(不包括查询) 从节点定期从主服务器获取oplog数据,并在本机进行执行 oplog使

Mongodb集群——master/slave

集群的配置 (本测试放于同一台机器进行配置,所以IP地址一样,如果是在不同的服务器上更换IP便可以) 1.目录结构 拷贝两份mongodb到/home/scotte.ye/mongo1和/home/scotte.ye/mongo2 2.开启mongodb 主: #cd /home/scotte.ye/mongo1/bin #./mongod --master -port=10111 -dbpath=/home/data/10111 -nohttpinterface & # 这样主服务器就开启了,

自动安装MongoDB Master, Slave, Arbiter脚本

最近有一个新项目需要用到MongoDB的Master,Slave,Arbiter的架构,去官网翻了一下文档,写了一个简陋的脚本.脚本可以在我的github上找到https://github.com/sangrealest #!/bin/bash #Author:Shanker #Time:2016/03/04 SlaveIP='10.128.129.45' SlaveName='Databse-Slave' SlaveMongoPort='27017' ArbiterIP='10.128.129