最近开始接触了MongoDB的安装配置,易部署、易使用,存储数据非常方便是它的特点。

0x00  副本集原理

MongDB副本集故障转移功能得益于它的选举机制。选举机制采用了Bully算法,可以很方便从分布式节点中选出主节点。

主要思想是集群的每个成员都可以声明它是主节点并通知其他节点。别的节点可以选择接受这个声称或是拒绝并进入主节点竞争。被其他所有节点接受的节点才能成为主节点。 MongoDB副本集的成员数量最好为奇数,集群最多允许12个副本集节点,其中最多7个节点参与选举。

0x01  源码下载解压$ cd /usr/local/src/

$ wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-4.0.0.tgz

$ tar xvzf mongodb-linux-x86_64-rhel70-4.0.0.tgz

$ mv /usr/local/src/mongodb-linux-x86_64-rhel70-4.0.0 /cache1/mongodb

$ cd /cache1/mongodb

$ mkdir -p data/log && mkdir -p data/db

$ chown runner.runner /cache1/mongodb -R    ##使用非root账号,账号自己创建

$ chmod 760 /cache1/mongodb

0x02  修改配置文件systemLog:

destination: file

path: "/cache1/mongodb/data/log/mongodb.log"  #根据实际情况修改

logAppend: true

storage:

journal:

enabled: true

dbPath: "/cache1/mongodb/data/db"  #根据实际情况修改

directoryPerDB: false

engine: wiredTiger

wiredTiger:

engineConfig:

cacheSizeGB: 10

directoryForIndexes: false

journalCompressor: zlib

collectionConfig:

blockCompressor: zlib

indexConfig:

prefixCompression: true

net:

bindIp: 192.168.10.1 #根据实际情况修改,4.0不配置默认绑定localhost,会导致无法访问

port: 27017 #27017为默认端口,建议修改

processManagement:

fork: true

replication:

replSetName: mongo #副本集名称,根据实际情况修改

security:

authorization: disabled

0x03  启动集群

在所有MongoDB机器都配置好后,启动集群$ su - runner

$ /cache1/mongodb/bin/mongod -f /cache1/mongodb/mongodb.conf

0x04  配置副本集

登录其中一台MongoDB$ su - runner

$ /cache1/mongodb/bin/mongo -host 192.168.10.1 -port 28017

> config={"_id": "mongo", "members": [{"_id":0, "host": "192.168.10.1:27017"},{"_id":1, "host": "192.168.10.2:27017"},{"_id":2, "host": "192.168.10.3:27017"}]}

> rs.initiate(config)

> rs.status() ##验证集群状态

其中mongo为配置文件中的replSetName,有多少台集群就添加多少个members

0x05  启用认证

1、生产秘钥$ openssl rand -base64 756 > /cache1/mongodb/secret_key.crt

$ chmod 400 /cache1/mongodb/secret_key.crt

$ scp /cache1/mongodb/secret_key.crt root@xxxx:/cache1/mongodb/

2、添加用户$ su - runner

$ /cache1/mongodb/bin/mongo -host 192.168.10.1 -port 27017

> use admin

> db.createUser({user:"aaa",pwd:"aaaaaaaa",roles:[{role:"root",db:"admin"}]})

3、修改配置

修改配置mongodb.conf,添加如下内容security:

keyFile: /cache1/mongodb/secret_key.crt

authorization: enabled

4、重启MongoDB$ killall mongod

$ /cache1/mongodb/bin/mongod -f /cache1/mongodb/mongodb.conf

5、集群验证use admin

db.auth("账号","密码")

> rs.status()

0x06 添加副本集添加副本集,在需要添加的主机配置好mongodb,并启动

在PRIMARY节点操作

>use admin

>db.auth("账号","密码")

>rs.add("192.168.10.4:27017")

>rs.status() 查看集群

linux下mongdb绑定ip,Linux下MongoDB安装及副本集配置 | 聂扬帆博客相关推荐

  1. MongoDB安装与副本集配置

    副本集是一组,由N个mongo节点组成并协同工作的,提供自动的故障集群转移. 建立一个副本集需要步骤,1.需要启动每个节点,2.然后进行初始化设置.在这里,我们将配置一组(三个节点),这是标准设置. ...

  2. linux整盘封装生成iso,一键自安装ISO封装打包脚本 | 聂扬帆博客

    对于经常打包ISO的来说,每次都要运行那几行命令很没效率.于是就整理了一个自动封装打包ISO的脚本.#!/bin/sh workpath="/CentOS/7" pack_dir= ...

  3. MongoDB 3.0副本集配置

    请先阅读我之前的文章<MongoDB 3.0的在CentOS6.5上的安装>  一.创建副本集须知: 1.存在一台有超级管理员的mongod服务器,可以有数据库,其他所有的服务器都必须是全 ...

  4. linux软raid 修复,Linux下软RAID维护 | 聂扬帆博客

    上一篇文章配置软RAID中配置好Raid之后,还需要进行日常的维护操作,比如其中一块物理硬盘损坏,我们需要进行更换故障磁盘的操作,下面我们将模拟raid1中磁盘损坏来讲解软RAID的维护操作. 一.硬 ...

  5. Linux网卡固件,CentOS下X710网卡升级驱动和固件脚本 | 聂扬帆博客

    对于CentOS7.1和7.5版本,安装X710网卡的驱动和固件版本太低,使用会有问题.这边整理了一份脚本自动检测安装,脚本会判断是否是DELL的几款机型,因为DELL机型的驱动和固件不能使用inte ...

  6. linux mode4的双网卡绑定,Linux实现双网卡绑定自动化脚本 | 聂扬帆博客

    在上一篇写了双网卡绑定和卸载:Linux实现双网卡绑定和卸载 其实认真观察上面的步骤,都是固定的.于是我们就可以写个脚本实现自动化配置#!/bin/bash if [ $# -lt 6 ];then ...

  7. 制作linux安装镜像文件,制作CentOS 6.5一键自安装ISO镜像光盘 | 聂扬帆博客

    因为工作中需要经常安装系统并且会有一些定制的系统包和软件.定制ISO可以大大减轻运维的负担.本文以Centos 6.5制作为例 一.系统安装包说明 目录树结构 |-- .discinfo |-- .t ...

  8. linux+parted+4k对齐,Centos 磁盘4K对齐脚本 | 聂扬帆博客

    4K对齐对磁盘性能有什么影响这边不单独讲解,有权威网站已经给出测试结果.感兴趣的可以去看->传送门.#!/bin/bash # Format all FOUND datadisks. decla ...

  9. ASP.NET Core默认注入方式下如何注入多个实现(多种方式) - sky 胡萝卜星星 - CSDN博客...

    ASP.NET Core默认注入方式下如何注入多个实现(多种方式) - sky 胡萝卜星星 - CSDN博客 原文:ASP.NET Core默认注入方式下如何注入多个实现(多种方式) - sky 胡萝 ...

最新文章

  1. SCOI 2014 new :未来展望
  2. java基数排序 数组_万字长文带你掌握Java数组与排序,代码实现原理都帮你搞明白!...
  3. iOS 仿支付宝密码支付
  4. 启动两个tomcat,两个端口,两个tomcat都启动时回显示端口被占用
  5. 全网最详细 TCP 参数讲解,再也不用担心没有面试机会了......
  6. Unity加载模块深度解析(纹理篇)
  7. 最简单的Qt配置opencv教程
  8. 经典卷积神经网络——VGG16
  9. mysql按照学生分组查询_MySQL分组查询
  10. 小公司个人技术成长路线思考
  11. C#实现简单音乐播放器
  12. c语言正弦函数求导,正弦函数求导公式基本推导
  13. 考PMP真的有用吗?
  14. 古墓丽影:源起之战影评
  15. 新旧CAD图纸对比-用BCore图纸引擎1秒就能完成
  16. webpack `Invalid Host/Origin header`问题
  17. Spire.XLS:一款Excel处理神器
  18. PR2019打开报错:由于找不到MSVCR110.dll,无法继续执行代码
  19. 用r求f分布的临界值
  20. js本地预览图片和转base64

热门文章

  1. python格式化字符串_Python笔记7:三种方式构建字符串-格式化
  2. java动态代理_Java 动态代理和依赖注入
  3. 嵌入式中断服务函数的一些特点
  4. 启明云端分享| 图文+实操+视频,手把手教你Eclipse搭建esp-idf环境
  5. springapplication.run运行多个应用_编程的十二要素应用宣言
  6. 华三交换机配置多个镜像口_配置本地端口镜像详解(多个镜像口:多个观察口)...
  7. 前端常见知识点五之Fetch
  8. python mysql example_Python_Example_ Pycharm(python) 与 数据库(MySQL) 连接学习/示例
  9. 4由通道检测_大唐阜新煤制天然气「榜样力量」实训做实出实效——废水总酚检测时间由4小时缩短至10分钟...
  10. Android Studio 疑难杂症