首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何编辑MongoDB配置文件以包含副本集?

如何编辑MongoDB配置文件以包含副本集?
EN

Stack Overflow用户
提问于 2015-12-04 08:59:18
回答 1查看 2K关注 0票数 0

我有一个Linux / ubuntu机器,它的mongodb是从ubuntu包管理器(APT)安装的。我试着用

代码语言:javascript
复制
sudo nano /etc/mongod.conf

激活replySet字段,使其读取:

代码语言:javascript
复制
# Replication Options
# in replicated mongo databases, specify the replica set name here
replSet=rs0

# maximum size in megabytes for replication operation log
#oplogSize=1024
# path to a key file storing authentication info for connections
# between replica set members
#keyFile=/path/to/keyfile

成功地用:sudo service mongod restart重新启动mongod实例,但是,每当我运行rs.initiate()时,都会导致错误,表明mongod找不到它的配置文件

代码语言:javascript
复制
{
  "info2" : "no configuration explicitly specified -- making one",
  "me" : "Leony:27017",
  "ok" : 0,
  "errmsg" : "No host described in new configuration 
  1 for replica set rs0 maps to this node",
  "code" : 93
}

有什么建议吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-12-04 10:28:19

我认为问题在于rs.initiate()调用和配置中指定的bindIp所解决的主机名不匹配。您是否尝试过向rs.initiate()调用提供json参数?就像下面这样?

代码语言:javascript
复制
rs.initiate({_id: "rs0", members: [{_id: 0,host: "hostname:port"}]})

另外,请参阅Mongodb中的JIRA机票,那里的Mongo工程师说,它实际上不是一个bug,而是按照设计的方式工作。因此,需要在net.bindIp中的主机名和副本集配置中的主机名之间保持一致性。

此外,在生产设置中,最好在/etc/host中有DNS名称或条目,以便轻松地管理集群。没有DNS名称或可解析主机名并不是不可能的,但这样做更容易。

还请参见这个答案有关bindIp的配置文件选项

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34084353

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档