Mongodb带验证的主从复制架构

本文涉及的产品
云数据库 MongoDB,通用型 2核4GB
简介:

先说几个关于mongodb的使用命令:

    1.创建用户    db.addUser('username','password');

    2.查询当前库中用户信息  db,system.users.find(); 

    3.进入响应数据库    use databaseName;

    4.显示当前数据库所有库的大小信息 show dbs;

    5.显示当前库的所有表信息 show collections;

    6.对数据进行用户验证 db.auth('username','password');

    7.创建表 db.createCollection('test');

    8.关闭数据的时候不要使用kill -9 的方式进行关闭数据库,这样会导致数据的破坏,关闭方法有两种,如下:

方法一:

1
2
3
4
#进入admin数据库
use admin;
#执行关闭数据库命令
db.shutdownServer();

方法二:

1
2
3
4
#过滤出进程ID
netstat  -ntpl |  grep  port
#使用-15的方式进行杀掉进程
kill  -15 ID

讲一个话外题,不感兴趣的同学可以略过,直接next了

    比如你创建了一个用户,权限只能看test库,当你使用mongodb mv管理软件且使用管理员的帐号连接上后,你会神奇的发现帐号test库并不显示,原因在于此数据库中没有任何的数据,当你使用第七条命令创建了一个表后,神奇的事情发生了,test这个数据库出现了


回归正题

    关于mongodb的主从复制

         不带账户验证的主从复制

                此种方案非常好理解,且操作简单,但是使用起来不安全。操作步骤大概如下:

                  系统环境介绍:Ubuntu 12.04.1 、MongoDB shell version: 2.6.1

                     启动的时候 只需要指定master和slave就可以了如下:

                        

1
mongod --dbpath= /usr/local/mongodb/data/mongodb_27017/  --fork --logpath= /var/log/mongod .log --port 27017 --master
1
mongod --dbpath= /usr/local/mongodb/data/mongodb_27018/  --fork --logpath= /var/log/mongod27018 .log --port 27018 --slave -- source =127.0.0.1:2701

         带账户验证的主从复制

                 此种方案就有点麻烦了,mongodb的官方文档注明了,需要使用一个keyfile的关键字进行数据同步,仅仅是哟过--auth是不行的。操作步骤大概如下:

                        系统环境介绍:Ubuntu 12.04.1 、MongoDB shell version: 2.6.1

                             步骤一、首先要进入admin库设置一个admin的账号,此账号为管理员帐号,对所有库都具有增删改查的权限,操作步骤如下:

1
2
3
mongo --host = 127.0.0.1:27017
use admin;
db.addUser( 'admin' , 'admin' );

                            步骤二、停掉现有的mongodb,然后使用如下参数启动,测试admin账户是否正确

1
2
3
4
mongod --dbpath= /usr/local/mongodb/data/mongodb_27017/  --fork --logpath= /var/log/mongod .log --port 27017 --auth
mongo --host = 127.0.0.1:27017
use admin;
db.auth( 'admin' , 'admin' );

                            步骤三、在slave上同样的操作步骤,进行设置slave的admin帐号并验证(切记如果主从在同一台机器上不要,使用了同一个端口,)

                            步骤四、停到主从,然后生成key文件。步骤如下:

1
openssl rand -base64 741 >  /root/mongo-keyfile

 会在root的宿主目录下生成一个文件mongo-keyfile文件 ll一下,看一下此文件大小,我第一次生成的时候文件大小为0,导致启动的时候失败

                            第五步、启动主从两个mongo。步骤如下

1
2
mongod --dbpath= /usr/local/mongodb/data/mongodb_27017/  --fork --logpath= /var/log/mongod .log --port 27017 --auth --master --keyFile  /root/mongo-keyfile 
mongod --dbpath= /usr/local/mongodb/data/mongodb_27018/  --fork --logpath= /var/log/mongod27018 .log --port 27018 --slave -- source =127.0.0.1:27017 --auth --keyFile  /root/mongo-keyfile

这样当操作主的时候 从自然也会跟着变化了


关于mongodb的账号设置管理与非管理员设置

               上面已经阐述了关于创建 “管理员”账号的操作方法,此处不就在阐述,如下内容阐述如何        创建普通用户权限

创建logdb库的普通用户,这个用户只可以操作本数据库,代码如下

1
2
3
4
5
6
#创建一个可读写账户
use logdb;
db.addUser( 'username' , 'password' );
#创建一个只读账户
use logdb;
db.addUser( 'username' , 'password' , true )









本文转自 xinsir999 51CTO博客,原文链接:http://blog.51cto.com/xinsir/1732416,如需转载请自行联系原作者
相关实践学习
MongoDB数据库入门
MongoDB数据库入门实验。
快速掌握 MongoDB 数据库
本课程主要讲解MongoDB数据库的基本知识,包括MongoDB数据库的安装、配置、服务的启动、数据的CRUD操作函数使用、MongoDB索引的使用(唯一索引、地理索引、过期索引、全文索引等)、MapReduce操作实现、用户管理、Java对MongoDB的操作支持(基于2.x驱动与3.x驱动的完全讲解)。 通过学习此课程,读者将具备MongoDB数据库的开发能力,并且能够使用MongoDB进行项目开发。   相关的阿里云产品:云数据库 MongoDB版 云数据库MongoDB版支持ReplicaSet和Sharding两种部署架构,具备安全审计,时间点备份等多项企业能力。在互联网、物联网、游戏、金融等领域被广泛采用。 云数据库MongoDB版(ApsaraDB for MongoDB)完全兼容MongoDB协议,基于飞天分布式系统和高可靠存储引擎,提供多节点高可用架构、弹性扩容、容灾、备份回滚、性能优化等解决方案。 产品详情: https://www.aliyun.com/product/mongodb
目录
相关文章
|
5天前
|
设计模式 容灾 关系型数据库
MySQL 主从复制架构
MySQL 主从复制架构
|
2月前
|
存储 监控 NoSQL
Redis 架构深入:主从复制、哨兵到集群
大家好,我是小康,今天我们来聊下 Redis 的几种架构模式,包括主从复制、哨兵和集群模式。
Redis 架构深入:主从复制、哨兵到集群
|
3月前
|
存储 运维 负载均衡
MongoDB详解(二)——MongoDB架构与原理
MongoDB详解(二)——MongoDB架构与原理
46 2
|
4月前
|
NoSQL 关系型数据库 MySQL
Redis高可用之主从复制架构(第一部分)
Redis高可用之主从复制架构(第一部分)
|
5月前
|
关系型数据库 MySQL Linux
Linux下搭建MySQL主从复制之一主一从架构
Linux下搭建MySQL主从复制之一主一从架构
64 0
|
6月前
|
监控 NoSQL MongoDB
轻松掌握组件启动之MongoDB(番外篇):高可用复制集架构环境搭建-mtools
mtools是一个基于Python实现的MongoDB工具集,旨在提供一系列功能,包括MongoDB日志分析、报表生成以及简易的数据库安装等。它由MongoDB原生的工程师单独发起并进行开源维护。mtools包含了一些常用的组件,如mlaunch、mlogfilter、mplotqueries和mlogvis等,可以帮助我们更方便地启动和创建MongoDB数据库。
|
6月前
|
监控 NoSQL 安全
轻松掌握组件启动之MongoDB(下):高可用复制集架构环境搭建
本章介绍了MongoDB复制集的配置和使用方法,如何初始化和添加节点到复制集,验证主节点的写入和从节点的读取功能。了解如何查询复制集的状态,包括成员的健康状况、同步信息和角色等。最后,我们介绍了如何配置复制集的安全认证,包括创建用户和生成keyFile文件,并演示了使用认证信息连接复制集的方式。通过本章的学习,你将掌握MongoDB复制集的基本使用和配置方法。
|
6月前
|
存储 NoSQL 容灾
轻松掌握组件启动之MongoDB(上):高可用复制集架构环境搭建
本文介绍了MongoDB复制集的架构和特点,强调了使用复制集提供数据的高可用性和冗余性的重要性。复制集由Primary节点和Secondary节点组成,确保数据一致性。复制集还具有数据分发、读写分离和异地容灾等附加功能。使用MongoDB复制集可以提供稳定可靠的数据存储和高可用性。
轻松掌握组件启动之MongoDB(上):高可用复制集架构环境搭建
|
13小时前
|
监控 负载均衡 持续交付
构建高效微服务架构:后端开发的新趋势
【5月更文挑战第5天】在数字化转型的浪潮中,微服务架构以其灵活性、可扩展性和容错性成为企业追求的技术典范。本文深入探讨了微服务的核心组件、设计原则和实施策略,旨在为后端开发者提供构建和维护高效微服务系统的实用指南。通过分析微服务的最佳实践和常见陷阱,我们揭示了如何优化系统性能、保证服务的高可用性以及如何处理分布式系统中的复杂性。
|
16小时前
|
缓存 NoSQL Java
构建高性能微服务架构:Java后端的实践之路
【5月更文挑战第5天】在当今快速迭代和高并发需求的软件开发领域,微服务架构因其灵活性、可扩展性而受到青睐。本文将深入探讨如何在Java后端环境中构建一个高性能的微服务系统,涵盖关键的设计原则、常用的框架选择以及性能优化技巧。我们将重点讨论如何通过合理的服务划分、高效的数据存储策略、智能的缓存机制以及有效的负载均衡技术来提升整体系统的响应速度和处理能力。