Mongodb带验证的主从复制架构

本文涉及的产品
云数据库 MongoDB,独享型 2核8GB
推荐场景:
构建全方位客户视图
简介:

先说几个关于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
目录
相关文章
|
1月前
|
监控 关系型数据库 MySQL
深入了解MySQL主从复制:构建高效稳定的数据同步架构
深入了解MySQL主从复制:构建高效稳定的数据同步架构
113 1
|
1天前
|
存储 NoSQL MongoDB
【赵渝强老师】MongoDB复制集的体系架构
MongoDB的复制集是一种集群技术,由一个Primary节点和多个Secondary节点组成,实现数据的高可用性。Primary节点处理写入请求,Secondary节点同步数据。当Primary节点故障时,Secondary节点可通过选举成为新的Primary节点。视频讲解和示意图详见正文。
|
1月前
|
NoSQL MongoDB Docker
求助,有没有大神可以找到arm64架构下mongodb的3.6.8版本的docker镜像?
在Docker Hub受限的情况下,寻求适用于ARM架构的docker镜像资源或拉取链接,以便在x86架构上获取;内网中的机器为ARM架构,因此优先请求适合ARM的Docker镜像或Dockerfile,非常感激您的帮助。
|
4月前
|
NoSQL Redis
Redis 主从复制架构配置及原理
Redis 主从复制架构配置及原理
62 5
|
5月前
|
SQL 关系型数据库 MySQL
MySQL高可用架构设计:从主从复制到分布式集群
MySQL高可用性涉及主从复制、半同步复制和Group/InnoDB Cluster。主从复制通过二进制日志同步数据,保证故障时可切换。半同步复制确保事务在至少一个从服务器确认后才提交。Group Replication是多主复制,支持自动故障切换。InnoDB Cluster是8.0的集成解决方案,简化集群管理。使用这些技术能提升数据库的稳定性和可靠性。
469 2
|
5月前
|
存储 负载均衡 NoSQL
MongoDB的架构设计基于三种集群模式
【6月更文挑战第5天】MongoDB的架构设计基于三种集群模式
217 3
|
5月前
|
存储 负载均衡 NoSQL
MongoDB架构设计
【6月更文挑战第6天】MongoDB架构设计
62 2
|
5月前
|
存储 NoSQL MongoDB
MongoDB技术架构详解
MongoDB技术架构详解
|
1月前
|
存储 关系型数据库 MySQL
一个项目用5款数据库?MySQL、PostgreSQL、ClickHouse、MongoDB区别,适用场景
一个项目用5款数据库?MySQL、PostgreSQL、ClickHouse、MongoDB——特点、性能、扩展性、安全性、适用场景比较
|
14天前
|
NoSQL Cloud Native atlas
探索云原生数据库:MongoDB Atlas 的实践与思考
【10月更文挑战第21天】本文探讨了MongoDB Atlas的核心特性、实践应用及对云原生数据库未来的思考。MongoDB Atlas作为MongoDB的云原生版本,提供全球分布式、完全托管、弹性伸缩和安全合规等优势,支持快速部署、数据全球化、自动化运维和灵活定价。文章还讨论了云原生数据库的未来趋势,如架构灵活性、智能化运维和混合云支持,并分享了实施MongoDB Atlas的最佳实践。
下一篇
无影云桌面