主从切换
如果主节点挂掉,会自动切换到从节点,此时从节点变成主节点。
在命令文件夹的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() 关掉数据库
二、登陆主节点
- ./mongo
- use db_tax 使用db_tax 数据库或者其他数据库
- 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 数据库中使用,提供超级权限