mongodb 复制集 测试

node1: 172.18.20.161 47000 (主)
node2: 172.18.20.162 47000 (副)
node3: 172.18.20.163 47000 (副)
node4: 172.18.20.164 47000 (投票)

解压mongodb包,并移到相应用目录。

配置文件:
dbpath = /home/oyabc/mongodb/data/ # 指定数据库路径
logpath = /home/oyabc/mongodb/logs/logs.log # 日志路径
logappend = true # 以追加的方式写日志
port = 47000 # 指定端口号,默认47018
fork = true # 以子进程方式运行
quiet = true # disables all but the most critical entries in output/log file.
#auth = true # 增加验证选项
#bind_ip = 127.0.0.1,172.18.12.2,172.18.12.3
#keyFile= /home/oyabc/mongodb/keyFile
directoryperdb = true # 每个db 存放在单独的目录中
wiredTigerDirectoryForIndexes = true
maxConns = 1000000
nohttpinterface = true
rest = false
profile=1
slowms=1000
storageEngine=wiredTiger
###Replication Options
replSet = im1
oplogSize = 4096

auth keyFile 配置完成后在加权限

启动:
/home/oyabc/mongodb/mongodb323/bin/mongod -f /home/oyabc/mongodb/conf/mongodb.conf

在PRIMARY上登陆并设置权限:
/home/oyabc/mongodb/mongodb323/bin/mongo --port 47000

cfg={ _id:"im1",
members:[
{_id:0,host:'172.18.20.161:47000',priority:2},
{_id:1,host:'172.18.20.162:47000',priority:1},
{_id:2,host:'172.18.20.163:47000',priority:1},
{_id:3,host:'172.18.20.164:47000',arbiterOnly:true}
]
};

> rs.initiate(cfg)

检查状态:
rs.status();

设置权限
use admin

1. 创建管理员账号(全局账号) 
use admin //管理员账号只能在admin账户下创建 
db.createUser({user:'admin',pwd:'admin',roles:['userAdminAnyDatabase','dbAdminAnyDatabase', 'readAnyDatabase','readWriteAnyDatabase']});  
2. 创建数据库账号 
use api //创建数据库 
db.createUser({user:'api',pwd:'api',roles:[{role:'dbOwner',db:'api'}]})

以上只在 PRIMARY 上操作, 用户,数据等会同步到其他副本上。

所有mongodb重启。

/home/oyabc/mongodb/mongodb323/bin/mongo --port 47000
use admin
db.auth('admin', 'admin'); // 认证

当副本不可用时可以设置 rs.slaveOk();

=======================================

停止服务:
use admin
db.shutdownServer();

给用户授权:
db.grantRolesToUser( "admin" , [ { role: "dbOwner", db: "test" } ]) ;

db.grantRolesToUser( "admin" , ['userAdminAnyDatabase','dbAdminAnyDatabase']) ;
db.grantRolesToUser( "admin" , ['readAnyDatabase','readWriteAnyDatabase']) ;

创建用户:
db.createUser(user, writeConcern)
user这个文档创建关于用户的身份认证和访问信息;
writeConcern这个文档描述保证MongoDB提供写操作的成功报告。

· user文档,定义了用户的以下形式:
{ user: "<name>",
pwd: "<cleartext password>",
customData: { <any information> },
roles: [
{ role: "<role>", db: "<database>" } | "<role>",
...
]
}

user文档字段介绍:
user字段,为新用户的名字;
pwd字段,用户的密码;
cusomData字段,为任意内容,例如可以为用户全名介绍;
roles字段,指定用户的角色,可以用一个空数组给新用户设定空角色;
在roles字段,可以指定内置角色和用户定义的角色。

Built-In Roles(内置角色):
1. 数据库用户角色:read、readWrite;
2. 数据库管理角色:dbAdmin、dbOwner、userAdmin;
3. 集群管理角色:clusterAdmin、clusterManager、clusterMonitor、hostManager;
4. 备份恢复角色:backup、restore;
5. 所有数据库角色:readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、dbAdminAnyDatabase
6. 超级用户角色:root
// 这里还有几个角色间接或直接提供了系统超级用户的访问(dbOwner 、userAdmin、userAdminAnyDatabase)
7. 内部角色:__system
PS:关于每个角色所拥有的操作权限可以点击上面的内置角色链接查看详情。

Database User Roles 普通用户角色 
read 
readWrite  
Database Administration Roles管理员角色 
dbAdmin可以管理数据库 
dbOwner单数据库最大权限,dbAdmin,userAdmin 
userAdmin可管理当前数据库用户  
Cluster Administration Roles管理员角色 
clusterAdmin 
clusterManager 
clusterMonitor 
hostManager  
Backup and Restoration Roles 备份和恢复角色 
backup 
restore  
All-Database Roles 所有数据库角色 
readAnyDatabase在admin下建立,可以读取所有数据库的信息 
readWriteAnyDatabase在admin下建立,可以读写所有数据库的信息 
userAdminAnyDatabase在admin下建立,可以管理所有数据库的用户 
dbAdminAnyDatabase在admin下建立,可以管理所有数据库的信息(类似于所有数据库的dbAdmin账户)

· writeConcern文档(官方说明)
w选项:允许的值分别是 1、0、大于1的值、"majority"、<tag set>;
j选项:确保mongod实例写数据到磁盘上的journal(日志),这可以确保mongd以外关闭不会丢失数据。设置true启用。
wtimeout:指定一个时间限制,以毫秒为单位。wtimeout只适用于w值大于1。

例如:在products数据库创建用户accountAdmin01,并给该用户admin数据库上clusterAdmin和readAnyDatabase的角色,products数据库上readWrite角色。
use products
db.createUser( { "user" : "accountAdmin01",
"pwd": "cleartext password",
"customData" : { employeeId: 12345 },
"roles" : [ { role: "clusterAdmin", db: "admin" },
{ role: "readAnyDatabase", db: "admin" },
"readWrite"
] },
{ w: "majority" , wtimeout: 5000 } )

验证:
mongo -u accountAdmin01 -p yourpassward --authenticationDatabase products

mongodb3.2.3 复制集安装步骤的更多相关文章

  1. mongodb-3.2.8 单机复制集安装

    规划: replSet 复制集名称: rs1 MongoDB数据库安装安装路径为:/usr/local/mongodb/ 复制集成员IP与端口: 节点1: localhost:28010   (默认的 ...

  2. mongodb3.4.0复制集的搭建

    本次主要介绍一下我们项目中关于mongodb复制集的搭建过程. 部署三台mongodb,分别是在69,70,71上面.71上面是主节点,69和70是从节点.使用mongodb3.4.0版本. 先看一安 ...

  3. 单机Mongo复制集安装配置(数据库版本:4.x)

      官方文档: https://docs.mongodb.com/manual/tutorial/deploy-replica-set-with-keyfile-access-control/#dep ...

  4. Mongodb 基础 复制集原理和搭建

    数据复制原理 开启复制集后,主节点会在local库下生成一个集合叫 oplog.rs,这是一个有限的集合,即大小固定.这个集合记入了整个mongod实例一段时间内数据库的所有变更操作(如:增/删/改) ...

  5. mongdb复制集搭建

    可参考官网教程 复制集增加了数据的冗余同时也提高了mongodb的可靠性,相比传统的主从架构,mongodb具有自动容灾的特性,即主库挂掉后会自动从剩下的从库中选举出一个节点做为主库(不需要人工干预) ...

  6. MongoDB之 复制集搭建

    MongoDB复制集搭建步骤,本次搭建使用3台机器,一个是主节点,一个是从节点,一个是仲裁者. 主节点负责与前台客户端进行数据读写交互,从节点只负责容灾,构建高可用,冗余备份.仲裁者的作用是当主节点宕 ...

  7. CentOS7 yum方式安装 MongoDB 3.4 复制集

    CentOS7 yum方式安装 MongoDB 3.4 环境.准备 Centos7 系统 配置MongoDB的yum源,添加文件/etc/yum.repos.d/mongodb-org-3.4.rep ...

  8. 安装和配置hadoop集群步骤

    hadoop集群的安装步骤和配置 hadoop是由java语言编写的,首先我们肯定要在电脑中安装jdk,配置好jdk的环境,接下来就是安装hadoop集群的步骤了,在安装之前需要创建hadoop用户组 ...

  9. MongoDB复制集原理、环境配置及基本测试详解

    一.MongoDB复制集概述 MongoDB复制集实现了冗余备份和故障转移两大功能,这样能保证数据库的高可用性.在生产环境,复制集至少包括三个节点,其中一个必须为主节点,一个从节点,一个仲裁节点.其中 ...

随机推荐

  1. codeforces B. Xenia and Ringroad 解题报告

    题目链接:http://codeforces.com/problemset/problem/339/B 题目理解不难,这句是解题的关键 In order to complete the i-th ta ...

  2. ext树表

    aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAA2UAAAHwCAIAAACpIFDdAAAgAElEQVR4nOy9f5Qb5ZnvWWQZlnO5Oc ...

  3. MyBatis的foreach语句详解

    foreach的主要用在构建in条件中,它可以在SQL语句中进行迭代一个集合.foreach元素的属性主要有 item,index,collection,open,separator,close.it ...

  4. 获取4G以上的文件大小

    1.DWORD dwFileSizeHigh;  // 得到文件大小的高位  __int64 qwFileSize = GetFileSize(m_hSrcBigFile, &dwFileSi ...

  5. 【Python爬虫】入门知识

    爬虫基本知识 这阵子需要用爬虫做点事情,于是系统的学习了一下python爬虫,觉得还挺有意思的,比我想象中的能干更多的事情,这里记录下学习的经历. 网上有关爬虫的资料特别多,写的都挺复杂的,我这里不打 ...

  6. .hpp与.h的区别

    本文转载http://blog.csdn.net/liuzhanchen1987/article/details/7270005,在此感谢 hpp,其实质就是将.cpp的实现代码混入.h头文件当中,定 ...

  7. LeetCode之Min Stack 实现最小栈

    LeetCode相关的网上资源比较多,看到题目一定要自己做一遍,然后去学习参考其他的解法. 链接: https://oj.leetcode.com/problems/min-stack/ 题目描述: ...

  8. 百万用户时尚分享网站feed系统扩展实践

    Fashiolista是一个在线的时尚交流网站,用户可以在上面建立自己的档案,和他人分享自己的以及在浏览网页时看到的时尚物品.目前,Fashiolista的用户来自于全球100多个国家,用户达百万级, ...

  9. Sonar+Hudson+Maven构建系列之一:安装Sonar

    摘要:本系列讲述Sonar在Linux下安装及配置过程,windows下的安装类似,会更简单. 本人经过一翻摸索,终于将Sonar+Hudson+Maven配置成功,并使用Hudson进行自动构建,发 ...

  10. XmlBeanFactory的Bean注册

    Spring将bean从配置文件到加载到内存中的全过程: BeanFactory bf = new XmlBeanFactory(new ClassPathResource("beanFac ...