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

时间:2015-12-04 08:59:18

标签: mongodb ubuntu

我有一台Linux Mint / Ubuntu机器,从ubuntu软件包管理器(APT-GET)安装了mongodb。我尝试使用

编辑/etc/mongod.conf
sudo nano /etc/mongod.conf

激活replySet字段,使其显示为:

# 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

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

{
  "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
}

有什么建议吗?

1 个答案:

答案 0 :(得分:0)

我认为问题是由rs.initiate()调用和配置中指定的bindIp解析的主机名不匹配。 您是否尝试过向rs.initiate()调用提供json参数?如下所示?

rs.initiate({_id: "rs0", members: [{_id: 0,host: "hostname:port"}]})

另请参阅Mongodb中的JIRA ticket,Mongo工程师说,它实际上不是一个bug,但按设计工作。因此,需要在net.bindIp中的主机名以及副本集配置中的主机名具有一致性。

此外,在生产设置中,最好在/ etc / hosts中使用DNS名称或条目来轻松管理群集。没有DNS名称或可解析的主机名也不是不可能的,但这种方式更容易。

另请参阅this answer有关bindIp的配置文件选项