Mongodb 副本集搭建失败的原因
简单搭建副本集群的教程
https://www.cnblogs.com/guigujun/p/9595234.html
这里说一下失败的原因
上面的教程中在admin 库中新建了root用户,然后配置文件改成了auth=true
开启了auth=true 认证登陆配置后 ,使用mongo shell 登陆mongodb 此时是无验证的,只是让你进入了shell console
所以任何对数据的操作都需要进行认证登陆,所以先要
db.auth(“username”,“password”)进行认证 mongodb返回1说明认证成功
如果你没有进展认证用户的认证 你任何对rs.initiate()都是失败的 或者 rs.status查看副本集也是失败的 都会提示你没有人权限操作 :
{
“ok” : 0,
“errmsg” : “command replSetInitiate requires authentication”,
“code” : xxx,
“codeName” : “Unauthorized”
}
添加新副本集也是同样
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsIyZuBnL1kjN4MzMzUTM5EDNwkTMwIzLc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
所以要进行登录认证 登录认证之后
配置自己的副本集 如:
var cfg={_id:‘rs0’,members:[{_id:0,host:‘10.xx.xx.105:27017’}, {_id:1,host:‘10.xx.xx.103:27017’}]}
其他的2台机器的配置文件replSet:rs0 要一致,rs0可以是自定义的名称
然后接着初始化rs.initiate(cfg) mongodb 返回1时说明成功
之后就可以操作mongodb了
等待一段时间后会响应的选举出primary的主机
查看副本集群的状态
最后可以看一下MongoDb安全认证技术博客大牛的文章
https://blog.csdn.net/wangmx1993328/article/details/82682299