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

/u04
--mongodb
--data 数据文件目录
--logs
--mongo.log
--mongodb3.4 安装目录
--bin
--keyfile.dat 集群通信的文件
--mongo.conf
--mongodb.pid
--mongoDbStart.log --启动日志文件
--mongoDbStart.sh --启动脚本
准备
先su root
再mkdir u04/mongodb -p
chown -R sysadm:sysadm u04
开始
一、将mongodb-linux-x86_64-3.4.0.tgz上传到mongodb目录下面。
解压到当前目录的mongodb3.4目录中。
二、建立data目录
建立logs目录,在logs目录下面创建mongo.log文件。 touch mongo.log
创建mongo.conf文件。Vim mongo.conf文件,输入下面的内容:
|
#数据库路径 dbpath=/u04/mongodb/data #日志输出文件路径 logpath=/u04/mongodb/logs/mongo.log #错误日志采用追加模式 logappend=true #启用日志文件,默认启用 journal=true #这个选项可以过滤掉一些无用的日志信息,若需要调试使用请设置为false quiet=true #端口号 默认为27017 port=27017 #pidfile文件 pidfilepath=/u04/mongodb/mongodb.pid #开启权限 #auth=true #后台运行 fork=true |
创建mongoDbStart.sh文件,输入下面的内容:
|
/u04/mongodb/mongodb3.4/bin/mongod --config /u04/mongodb/mongo.conf |
修改mongoDbStart.sh的权限:
chmod 777 mongoDbStart.sh
启动测试
nohup /u04/mongodb/mongoDbStart.sh >mongoDbStart.log 2>&1 &
测试连接是否成功:mongo ip:port
只要能连接上就行,不要执行其它操作(因为初始化复制集的时候要保证mongodb里面没有数据和用户)
使用命令:/u04/mongodb/mongodb3.4/bin/ mongo x.x.x.71:27017
使用robo来连接:

关闭mongodb,切记 kill -9 PID
而是使用Kill -2 PID 这样会让mongodb数据库在关闭之前做一下收尾的处理。
重复以上步骤在69和70上面,建立mongodb的从节点,然后测试是否成功连接。切记不要执行创建用户创建数据等任何操作。
创建复制集
修改三个配置文件:复制集名称:gjywset
replSet=gjywset
echo replSet=gjywset >> mongo.conf
(也可以直接将replSet=gjywset提前写入mongo.conf文件中,节省了上面的测试是否能够链接成功一步。)
启动三个mongodb数据库。
1、初始化复制集:
登录到71节点上,/u04/mongodb/mongodb3.4/bin/ mongo x.x.x.71:27017
(要是一个完全新的mongodb数据库才能初始化,如果已经创建用户或者创建数据库/集合等,就不能初始化成功了)
①:输入:
config = {
_id:"gjywset",
members:[
{_id:0,host:"x.x.x.71:27017","priority":3},
{_id:1,host:"x.x.x.70:27017","priority":2},
{_id:2,host:"x.x.x.69:27017","priority":1}
]
}
参数说明:arbiterOnly表示是一个仲裁节点。(本次没有使用)
priority:表示权重,数据越大越有可能成为主节点
②:执行初始化:rs.initiate(config);
③:使用rs.status()查看状态 显示71上的27017为主节点。
2、测试:
连接71上的27017:
use admin
use yujk
db
db.yjklog.insert({name:"zhangsan",age:11,sex:"男"})
db.yjklog.insert({name:"lisi",age:22,sex:"男"})
db.yjklog.insert({name:"王力宏",age:22,sex:"女",address:"外星移民"})
db.yjklog.insert({name:"花无缺",age:22,address:"广东丰台区nalinanbian"})
db.yjklog.find();
连接69上的27017:
db
show dbs 报错
rs.slaveOk(1);
show dbs;
use yujk;
show tables;
db.yjklog.find();
演示完成。
权限开启:
#########开启角色权限的校验###############root权限包含了any的四个全部的权限,什么权限都有。
开启角色权限:
(1)先创建用户:yjkroot和yjkhost
use admin
db.createUser({user:" yjkroot",pwd:"gjywroot",roles:[{role:"root",db:"admin"},{role:"readWrite",db:"yujk"}]}) #这样设置,要有root的角色
use yujk
db.createUser({user:"yjkhost",pwd:"yjkhost",roles:[{role:"readWrite",db:"yujk"}]})
关掉三个节点。
(2)在配置文件中将author=true打开 三个配置文件都要打开。
(3)连接x.x.x.71:27017主节点,
use admin
db.auth("yjkroot","yjkroot");
rs.status();发现还没有配置keyfile,即不同节点直接是不信任的状态--->>"authenticated" : false
关闭三个节点。Kill -2 mongopid
(4)使用openssl生成密钥文件
cd /u04/mongodb
openssl rand -base64 30 > keyfile.dat #30位的长度
修改文件权限:chmod 600 keyfile.dat
(5)将keyfile文件拷贝到69和70服务器的mongodb目录下
(6)修改配置文件启用keyfile文件 keyFile=/u04/mongodb/keyfile.dat
echo keyFile=/u04/mongodb/keyfile.dat >> mongo.conf
(7)启动三个节点:参照上面的方式.
nohup /u04/mongodb/mongoDbStart.sh >mongoDbStart.log 2>&1 &
至此,mongodb复制集就安装好了。
附
推荐一个慕课网上面老师讲解mongodb的,
https://www.imooc.com/u/1196301/courses?sort=publish
https://www.cnblogs.com/clsn/p/8214194.html
https://www.cnblogs.com/clsn/p/8214345.html
https://www.cnblogs.com/clsn/p/8244206.html
优先级设置priority和votes:
https://blog.csdn.net/jjwen/article/details/53944503
mongodb3.4.0复制集的搭建的更多相关文章
- Redis 5.0.5集群搭建
Redis 5.0.5集群搭建 一.概述 Redis3.0版本之后支持Cluster. 1.1.redis cluster的现状 目前redis支持的cluster特性: 1):节点自动发现 2):s ...
- redis4.0.6集群搭建
文件环境:CentOS7 + redis4.0.6 先去官网下载redis:https://redis.io/,然后上传到你的虚拟机,我上传到了/mysoft 先解压->然后进入主目录-> ...
- mongoDB3.4的sharding集群搭建及JavaAPI的简易使用
第一部分 在搭建mongoDB之前,我们要考虑几个小问题: 1.我们搭建集群的目的是什么?是多备份提高容错和系统可用性还是横向拓展存储大规模数据还是两者兼有? 如果是为了多备份那么选择replicat ...
- redis5.0 Cluster集群搭建
安装redis sudo apt update sudo apt install build-essential tcl cd ~ mkdir document/ cd document/ curl ...
- ubuntu18.04 基于Hadoop3.1.2集群的Hbase2.0.6集群搭建
前置条件: 之前已经搭好了带有HDFS, MapReduce,Yarn 的 Hadoop 集群 链接: ubuntu18.04.2 hadoop3.1.2+zookeeper3.5.5高可用完全分布式 ...
- mongodb3.2.3 复制集安装步骤
mongodb 复制集 测试 node1: 172.18.20.161 47000 (主)node2: 172.18.20.162 47000 (副)node3: 172.18.20.163 4700 ...
- java_redis3.0.3集群搭建
redis3.0版本之后支持Cluster,具体介绍redis集群我就不多说,了解请看redis中文简介. 首先,直接访问redis.io官网,下载redis.tar.gz,现在版本3.0.3,我下面 ...
- Redis 3.0.2集群搭建以及相关问题汇总
Redis3 正式支持了 cluster,是为了解决构建redis集群时的诸多不便 (1)像操作单个redis一样操作key,不用操心key在哪个节点上(2)在线动态添加.删除redis节点,不用停止 ...
- Hadoop2.0 HA集群搭建步骤
上一次搭建的Hadoop是一个伪分布式的,这次我们做一个用于个人的Hadoop集群(希望对大家搭建集群有所帮助): 集群节点分配: Park01 Zookeeper NameNode (active) ...
随机推荐
- canvas image array(canvas图片阵列)
code: <!DOCTYPE html> <html> <head> <title>hehe</title> </head& ...
- AdobeCS3DesignPremiumChs_Greendown.cn使用注册机激活失败重新激活操作方法
解决Adobe Acrobat 9 Pro序列号无效/重新激活方法 1.删除C:\Program Files\Common Files\Adobe\Adobe PCD\cache\cache.db和C ...
- 139.00.006 Git学习-标签管理Tag
@(139 - Environment Settings | 环境配置) 一.Why 发布一个版本时,我们通常先在版本库中打一个标签(tag),这样,就唯一确定了打标签时刻的版本.将来无论什么时候,取 ...
- android 实现类似微信缓存和即时更新好友头像
引言 使用微信时我们会发现,首次进入微信的好友列表时,会加载好友头像,但是再次进入时,就不用重新加载了,而且其他页面都不用重新加载,说明微信的好友头像是缓存在本地的,然后好友修改头像后,又会及时的更新 ...
- Linq中的in和not in的使用方法
T-SQL语句: select * from PayingRecords where ClientID='17787665-1d98-49e6-b254-a6a6553c4b42' and ID no ...
- python 小词云
# Author:Alex.wang# Date:2017.06.02# Version:3.6.0 import matplotlib.pyplot as pltfrom wordcloud imp ...
- mysql实现‘主从复制’
mysql主从复制(超简单) 怎么安装mysql数据库,这里不说了,只说它的主从复制,步骤如下: 首先准备多台服务器,其中一台作为主服务器,从服务器数量自定. 1.主从服务器分别作以下操作: 主服务器 ...
- css z-index层重叠顺序
一.z-index语法与结构 z-index 跟具体数字 如:div{z-index:100}注意:z-index的数值不跟单位. z-index的数字越高越靠前,并且值必须为整数和正数(正数的整数) ...
- SAP Customer Data Cloud(Gigya)的用户搜索实现
我在Gigya前台根据email搜索,输入一个邮箱地址,回车,在Chrome开发者工具里观察到到后台的网络请求: 这是一个post请求: __RequestVerificationToken 请求体: ...
- Maven项目打包jar依赖外部jar
有时候我们想要做一些java 的小程序,需要把打包成jar,单独执行,做一个maven项目,maven非常方便,有自动打包成jar的插件,但是有时候我们的项目可能会依赖其他的jar包,所以非常麻烦. ...