星空网 > 软件开发 > 数据库

配置replica set的常见问题

总有人问起配置ReplicaSet不成功,总结了一下基本上的可能性就几种,检查步骤如下:

假设三台机器的IP分别是

A: 192.168.1.2 a.test.comB:192.168.1.3 b.test.comC: 192.168.1.4 c.test.com

1. mongod有在运行吗?

虽然这是个很低级的问题,但是还是要不厌其烦地说一句,请先检查是否真的运行了mongod。

# ps awx | grep mongod 7393 ?    Sl  42:32 /usr/bin/mongod -f /etc/mongod.conf <--正在运行的mongod进程24663 pts/1  S+   0:00 grep mongod

2. bind_ip不正确

如果是从YUM源安装,CentOS默认bind_ip配置为127.0.0.1,所以是绝对不可能从其他机器连上的。验证办法为:

netstat -pln | grep mongod

如果绑定地址为:0.0.0.0:27017或192.168.1.2(局域网IP):27017则没有问题。

如需修改,编辑/etc/mongod.conf中

bind_ip=192.168.1.2

再重启mongod即可。

注意:在生产环境下不建议使用bind_ip=0.0.0.0,因为这样极易向公网暴露mongodb服务,造成不安全隐患。这也是为什么默认bind_ip是127.0.0.1的原因——让配置人员必须关注一下这个配置。

3. 防火墙未打开端口

经过以上步骤后,在正常情况下在任意一台机器上应该可以连接其他两台机器的27017端口。比如在A上时

mongo 192.168.1.3mongo 192.168.1.4

应该都是可以顺利连接的,如果不行,那应该检查一下防火墙是否有在运作并阻止了你的访问。

这是一个关于iptables的基本操作问题,请查阅iptables相关使用方法,在此不再赘述。

4. 使用域名添加成员时请注意

跟步骤3一样的原因,因为任意两台实例必须能够互相连接,所以如果使用域名,应该确保使用到的域名在各个结点上都能够正常解析。在本例中三个实例都必须能够正常解析a/b/c.test.com到对应的机器

ping a.test.comping b.test.comping c.test.com

同时可见为什么不允许使用localhost/127.0.0.1作为地址添加进去,因为大家都会把localhost/127.0.0.1解析为自己,导致混乱。

5. keyfile配置问题

replica set成员必须使用同一个keyfile,内容可以随自己意愿。注意这个文件可以放在任意地方,但是权限必须是600,所属用户必须是启动mongod的用户

比如如果用service启动mongod,则该文件应该属于mongod:mongod;如果是用root用户启动,则该文件应该属于root:root。配置错误的情况下是会在日志中看到一个错误的。

以上是近期遇到的常见情况,随时补充。




原标题:配置replica set的常见问题

关键词:

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。

外媒:阿里国际站海外买家显著增长,原因何在?:https://www.xlkjsw.com/news/72018.html
上线1个月,第一批加入阿里国际站半托管的卖家怎么样了?:https://www.kjdsnews.com/a/1837882.html
上线1个月,第一批加入阿里国际站半托管的卖家怎么样了?:https://www.xlkjsw.com/news/72019.html
出口业务6大风险越早知道越好!:https://www.kjdsnews.com/a/1837883.html
出口业务6大风险越早知道越好!:https://www.xlkjsw.com/news/72020.html
外贸旺季观察:阿里国际站涌现十大外贸新品:https://www.kjdsnews.com/a/1837884.html
Temu引发家庭矛盾?年轻一代为何对低价商品集体摇头:https://www.xlkjsw.com/news/94308.html
如何通过 9 个步骤建立商业信用:https://www.kjdsnews.com/a/1842262.html
相关文章
我的浏览记录
最新相关资讯
海外公司注册 | 跨境电商服务平台 | 深圳旅行社 | 东南亚物流