mongodb副本集

本文详细介绍了MongoDB的副本集设置,主从切换过程,以及如何测试主从数据同步。主要内容包括:主从切换的自动机制,如何在主节点创建超级用户,以及MongoDB内置角色的说明,强调了在主节点创建用户的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

主从切换

如果主节点挂掉,会自动切换到从节点,此时从节点变成主节点。

在命令文件夹的bin目录下,使用./mongo 就可以登录。登陆后,

使用命令rs.status() 就可以查看主从节点信息。

查看数据库时,主节点可以直接show dbs 查询,从节点先使用

rs.secondaryOk()  然后使用show dbs 查询。

因为有两个节点都在10.11.21:49上端口一个27017 一个是27018

使用./mongo 登陆时默认是27017端口,如果要登陆27018端口使用

./mongo --port=27018  

测试主存数据同步

一、可以登陆其中一个从节点 ,使用以下命令关闭一个数据库

1、use admin

2、db.shutdownServer()  关掉数据库

二、登陆主节点

  1. ./mongo
  2. use db_tax  使用db_tax 数据库或者其他数据库
  3. db.xltest.insertOne({'name':'wangwu哈哈'}); 插入数据

三、将关掉的从节点数据库重新启动

1、./mongod --config /data/mongodb01/etc/mongodb.conf  (关掉的是哪个从节点就启动哪个节点)

2、rs.secondaryOk()

3、use db_tax

4、db.xltest.find()  就可以查询到刚才从主节点插入的数据了。

登陆主节点创建超级用户

创建用户时需要注意,如果只想要创建一个超级用户来管理所有的数据库,一定要按照如下指令进行创建:db.createUser({user:"root",pwd:"password",roles:["root"]})

先停从库,最后停主库

先启主库,再启从库

一定要在主节点进行创建,从节点会自动同步,切记,切记,切记!!!!!!

rs0:PRIMARY> use admin

switched to db admin

rs0:PRIMARY> db.createUser({user:"root",pwd:"password",roles:["root"]})

Successfully added user: { "user" : "root", "roles" : [ "root" ] }

直接使用超级用户登陆,登陆后,直接可以操作数据库,不用再进行权限认证

mongo -u "root" --authenticationDatabase "admin" -p'password'

MongoDB 中内置角色说明:

read:提供读取所有非系统的集合(数据库)

readWrite:提供读写所有非系统的集合(数据库)和读取所有角色的所有权限

dbAdmin:提供执行管理任务的功能,例如与架构相关的任务,索引编制,收集统计信息。此角色不授予用户和角色管理权限。

dbOwner:提供对数据库执行任何管理操作的功能。此角色组合了readWrite,dbAdmin 和 userAdmin 角色授予的权限。

userAdmin :提供在当前数据库上创建和修改角色和用户的功能。由于 userAdmin 角色允许用户向任何用户(包括他们自己)授予任何权限,因此该角色还间接提供对数据库的超级用户访问权限,或者,如果作用于管理数据库,则提供对群集的访问权限。

clusterAdmin :提供最佳的集群管理访问。此角色组合了 clusterManager,clusterMonitor 和 hostManager 角色授予的权限。此外,该角色还提供了 dropDatabase 操作。

readAnyDatabase :仅在 admin 数据库中使用,提供所有数据库的读权限。

readWriteAnyDatabase :仅在 admin 数据库中使用,提供所有数据库的读写权限

userAdminAnyDatabase :仅在 admin 数据库中使用,提供与 userAdmin 相同的用户管理操作访问权限,允许用户向任何用户(包括他们自己)授予任何权限,因此该角色还间接提供超级用户访问权限。

dbAdminAnyDatabase :仅在 admin 数据库中使用,提供与 dbAdmin 相同的数据库管理操作访问权限,该角色还在整个群集上提供 listDatabases 操作。

root:仅在 admin 数据库中使用,提供超级权限

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值