我有一个Linux / ubuntu机器,它的mongodb是从ubuntu包管理器(APT)安装的。我试着用
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成功地用:sudo service mongod restart重新启动mongod实例,但是,每当我运行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
}有什么建议吗?
发布于 2015-12-04 10:28:19
我认为问题在于rs.initiate()调用和配置中指定的bindIp所解决的主机名不匹配。您是否尝试过向rs.initiate()调用提供json参数?就像下面这样?
rs.initiate({_id: "rs0", members: [{_id: 0,host: "hostname:port"}]})另外,请参阅Mongodb中的JIRA机票,那里的Mongo工程师说,它实际上不是一个bug,而是按照设计的方式工作。因此,需要在net.bindIp中的主机名和副本集配置中的主机名之间保持一致性。
此外,在生产设置中,最好在/etc/host中有DNS名称或条目,以便轻松地管理集群。没有DNS名称或可解析主机名并不是不可能的,但这样做更容易。
还请参见这个答案有关bindIp的配置文件选项
https://stackoverflow.com/questions/34084353
复制相似问题