环境:
Microsoft Windows [版本 10.0.10586]
mongod 版本:
db version v3.2.1
git version: a14d55980c2cdc565d4704a7e3ad37e4e535c1b2
OpenSSL version: OpenSSL 1.0.1p-fips 9 Jul 2015
allocator: tcmalloc
modules: none
build environment:
distmod: 2008plus-ssl
distarch: x86_64
target_arch: x86_64
1.建立3个文件夹1、2、3分别为主、备、备服务器
2.使用keyFile进行授权连接replica sets
#随机生成keyFile或者手动写入,key的长度必须是6-1024的base64字符,unix下必须相同组权限,windows下不需要
openssl rand -base64 1024 > mongodb.key
chmod 600 mongodb.key
3.配置文件
{
"storage":
{
"dbPath": "D:/MongoDB3/1/db"
},
"net":
{
"port": 27001,
"http":
{
"enabled":true
}
},
"replication":
{
"replSetName":"s1"
},
"security":
{
"authorization": "enabled",
"clusterAuthMode":"keyFile",
"keyFile":"D:/MongoDB3/settings/mongodb.key"
}
}
4.启动mongo
mongod --config="D:\MongoDB3\1\mongodb.cfg"
mongod --config="D:\MongoDB3\2\mongodb.cfg"
mongod --config="D:\MongoDB3\3\mongodb.cfg"
5.连接主Mongo
mongo 127.0.0.1:27001
use admin
rs.initiate()
#确认
rs.conf()
#添加从库,使用本机局域网ip地址,使用127.0.0.1会出错
rs.add('192.168.10.105:27002')
rs.add('192.168.10.105:27003')
#或者一次性添加
rs.initiate({_id:"s1",members:[
{_id:0,host:"192.168.10.105:27001",priority:100},
{_id:1,host:"192.168.10.105:27002",priority:99},
{_id:2,host:"192.168.10.105:27003",priority:98},
]})
#查看配置信息
rs.status()
#移除库
rs.remove('192.168.10.105:27002')
6.添加用户及授权认证
db.createUser(
{
user:"any",
pwd:"password",
roles:[{role:"userAdminAnyDatabase",db:"admin"}]
}
);
db.auth("any","password")
7.连接副本