【MongoDB】windows平台搭建Mongo数据库复制集(类似集群),mongodbmongo
Replica Sets(复制集)是在mongodDB1.6版本开始新增的功能,它可以实现故障自动切换和自动修复功能成员节点的功能,各个DB之间的数据完全一致,大大降低了单点故障的风险。
【】
以上图示是三个节点的Replica Set架构。该图来源于红丸编写的《Mongodb管理与开发精要》这本书。从上图可以看出,结构类似与一个集群,其实完全可以当做一个集群。因为它确实和集群实现的作用是相同的。
一、部署Replica Sets.
接下来显示如何在一台服务器上面演示部署3个节点的Replica Sets
二、启动Replica服务
分别打开三个命令窗口,然后分别执行下面三句话。
mongod.exe --replSet rs1 --keyFile "D:\Program Files\mongodb\data\replica\key\r0" --port 28010 --dbpath "D:\Program Files\mongodb\data\replica\data\r0" --logpath "D:\Program Files\mongodb\data\replica\log\r0.log" --logappend mongod.exe --replSet rs1 --keyFile "D:\Program Files\mongodb\data\replica\key\r1" --port 28011 --dbpath "D:\Program Files\mongodb\data\replica\data\r1" --logpath "D:\Program Files\mongodb\data\replica\log\r1.log" --logappend cd /d D:\Program Files\mongodb\bin mongod.exe --replSet rs1 --keyFile "D:\Program Files\mongodb\data\replica\key\r2" --port 28012 --dbpath "D:\Program Files\mongodb\data\replica\data\r2" --logpath "D:\Program Files\mongodb\data\replica\log\r2.log" --logappend
三、登录客户端,初始化Replica Sets环境
太小气了,还是给你简单说一说吧,下边是我之前研究mongodb时候做的笔记中的一点部分。
mongoDB默认用户认证是关闭的。
修改 /etc/mongod.conf 文件。mongoDB默认情况下任何客户端都可以连接27017端口,且没有认证,默认情况下没有管理员帐户。通过修改这个配置文件可以更改为登陆时进行权限认证。
mongoDB中如果想要给某个数据库创建一个用户,需要首先进入该数据库,然后使用addUser命令。在这里也可以将用户设置为只读(db.addUser("jack","jack",true),第三个参数表示是否时“只读用户”)。
要使用超级管理员,需要先连接admin数据库并登陆管理员帐户,然后连接其他数据库就可以行使管理员权限。
用户信息保存及认证过程
类似MySQL将系统用户信息保存在mysql.user表。MongoDB也将系统用户的username、pwd保存在admin.system.users集合中。其中pwd = md5(username + “:mongo:” + real_password)。这本身并没有什么问题。username和:mongo:相当于对原密码加了一个salt值,即使攻击者获取了数据库中保存的md5 hash,也没法简单的从彩虹表中查出原始密码。
权限管理常用命令
1. #进入数据库admin
use admin
2. #增加或修改用户密码
db.addUser('name','pwd')
3. #查看用户列表
db.system.users.find()
4. #用户认证
db.auth('name','pwd')
这一个返回1就认证成功了,只有认证成功才能对数据库进行操作
5. #删除用户
db.removeUser('name')
6. #查看所有用户
show users
7. #查看所有数据库
show dbs
8. #查看所有的collection
show collections
9. #查看各collection的状态
db.printCollectionStats()
10. #查看主从复制状态
db.printReplicationInfo()
JMongoBrowser,MonvoVUE,windows自带的命令行也可以用。
不过最好下个增强的cmd工具,比如powercmd,因为在命令行里显示不出来的,在客户端工具里也不一定显示的出来。学mongo,最好学会敲命令,而不是“点啊点”