在前文基础上,三台主机上安装mongodb,且配置文件/etc/mongodb.conf中的repl_set_name必须相同。
配置副本集操作如下:
/usr/local/mongodb/bin/mongo "127.0.0.1:{{mongo_port}}" # 连接mongodb
# 连接后执行以下操作
use admin
config={_id:"{{repl_set_name}}",members:[{_id:0,host:"{{mongo1}}:{{mongo_port}}",priority:36},{_id:1,host:"{{mongo2}}:{{mongo_port}}",priority:35},{_id:2,host:"{{mongo3}}:{{mongo_port}}",priority:34}]}
rs.initiate(config)
为mongodb配置账户密码脚本如下:
result=`/usr/local/mongodb/bin/mongo "127.0.0.1:{{mongo_port}}" --quiet --eval 'printjson(db.isMaster().ismaster)'` # 判断当前主机是否是主节点
echo ">>>>>>>>>>>>>>>>>>>>>is master: " $result
if [ $result = true ] # 主节点创建用户
then
/usr/local/mongodb/bin/mongo "127.0.0.1:{{mongo_port}}" << EOF
use admin
db.createUser({ user: "{{mongo_root_user}}", pwd: "{{mongo_root_pass}}", roles: [ { role: "root", db: "admin" } ] });
EOF
fi
最后,对主节点进行写,在副本中进行读测试通过即可。