搭建环境
两台虚拟机:10.5.117.111|10.5.117.112
将在上面起实例 master:10.5.117.111:27017
两个slave :10.5.117.111:27018 | 10.5.117.112:27017
arbiter:10.5.117.112:27018
建立文件目录
111|112两台相同
首先解压到MongoDB包到/data/mongo/下
创建数据目录:/data/mongo/db1 、/data/mongo/db2
日志目录:/data/mongo/log1、/data/mongo/log2
keyFile目录 :/data/mongo/db1/key 、 /data/mongo/db2/key
创建keyFile文件
111|112可相同
(可以使用openssl生成一个复杂性高的私钥:openssl rand -base64 753)
$ echo "私钥值" >/data/mongo/db1/key/key
$ echo "私钥值" >/data/mongo/db2/key/key
搭建集群环境
在111|112上执行如下指令。其中参数--dbpath|--logpath需要调整
$./mongod --dbpath=/data/mongo/db1 --logpath=/data/mongo/log1 --port 27017 -replSet myset
然后登陆随意一台MongoDB实例
> config= {_id:"myset",version:1,members:[{_id:0,host:"10.5.117.111:27017,priority:10},{_id:1,host:"10.5.117.111:27018,priority:9},{_id:2,host:"10.5.117.112:27017,priority:9},{_id:3,host:"10.5.117.112:27018,priority:9,arbiterOnly:true}]}
>rs.initiate(config)
>rs.conf() 可查看相关信息
登录到master
>mongo 10.5.117.110:27017
>use admin
>db.addUser('admin','admin);
>rs.slaveOk
可在slave上查看到刚添加的用户
启动认证的Replset
关闭所有实例
重新使用指令启动
$./mongod --dbpath=/data/mongo/db1 --logpath=/data/mongo/log1 --port 27017 -replSet myset --keyFile /data/mongo/db1/key/key --fork
加入到开机启动项
vim /etc/rc.lock
中加入:
rm -rf /data/mongo/db2/*.lock
./mongod --dbpath=/data/mongo/db2 --logpath=/data/mongo/log2/mongod.log --port 27018 --replSet myset --keyFile /data/mongo/db2/key/key --fork
./mongod --dbpath=/data/mongo/db1 --logpath=/data/mongo/log1/mongod.log --port 27017 --replSet myset --keyFile /data/mongo/db1/key/key --fork
关联链接有:
http://duoku.blog.51cto.com/2489043/1160053
http://blog.chinaunix.net/uid-7249348-id-223586.html
http://docs.mongodb.org/v2.2/administration/replica-sets/
http://www.cnblogs.com/wly923/archive/2013/04/14/3020663.html
http://blog.csdn.net/azhao_dn/article/details/7305709
http://www.dotblogs.com.tw/newmonkey48/archive/2012/12/05/85431.aspx