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. jquery去掉或者替换字符,设置指定options为selected状态

    <html> <body> <div><select id="queryYear">                 <opt ...

  2. icon上添加数字提醒

    使用viewbadger包: package com.jingle.vierbagerstudy; import android.app.Activity; import android.os.Bun ...

  3. ubuntu 彻底删除卸载

    1911 sudo apt-get install zabbix-agent 1916 sudo apt-get autoremove zabbix_agent root@(none):~# apt- ...

  4. tomcat The file is absent or does not have execute permission

    [root@centos02 bin]# ./startup.sh Cannot find ./catalina.sh The file is absent or does not have exec ...

  5. CodeIgniter - 数据库的增删改查

    数据库操作无非是CRUD,用非装逼的语言来说就是增删改查.也许这一节会讲的很泛泛,或者很多人看不懂,没关系,大致的看看,知道是这么回事就好,继续往后看,后面会讲实例,这些枯燥而又抽象的东西可以先跳过, ...

  6. 实例讲解虚拟机3种网络模式(桥接、nat、Host-only)

    转自:http://www.cnblogs.com/ggjucheng/archive/2012/08/19/2646007.html 前言 很多人安装虚拟机的时候,经常遇到不能上网的问题,而vmwa ...

  7. POJ 2299 逆序对

    Crossings Time Limit: 2 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/gym/100463 Description I ...

  8. android 获取路径目录方法以及判断目录是否存在,创建目录

    Environment 常用方法: * 方法:getDataDirectory()解释:返回 File ,获取 Android 数据目录.* 方法:getDownloadCacheDirectory( ...

  9. git中进入带有空格的目录下的解决办法

    比如:要进入Program Files目录下 有两种方法: 1.将Program Files目录用引号引起来. $ cd "Program Files" 2.将空格处使用空格引号 ...

  10. LIB 配置文件读写器

    由于读写配置文件的次数比较频繁,而且拥有众多的类库,到最后,直接被各种各样的类库烦死. 顺手封一个简单,实用的.主要功能: 读写AppSetting 读取连接字符串 读取自定义配置节 using Sy ...