Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/neo4j/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在mongodb中使用副本配置重新开始_Mongodb_Replication - Fatal编程技术网

在mongodb中使用副本配置重新开始

在mongodb中使用副本配置重新开始,mongodb,replication,Mongodb,Replication,在mongodb中配置副本集时出错。我认为我做错的是我在两个节点上都做了rs.initialize(),这在某种程度上使它们混淆了。我不确定 现在我只想重新开始,但我找不到一种方法来取消初始化节点。因此,我按照建议删除本地*db文件,从而重置配置。我那样做了,现在什么都没用了 > rs.initiate() { "info2" : "no configuration explicitly specified -- making one", "me" : "0.0.0.0:2

在mongodb中配置副本集时出错。我认为我做错的是我在两个节点上都做了rs.initialize(),这在某种程度上使它们混淆了。我不确定

现在我只想重新开始,但我找不到一种方法来取消初始化节点。因此,我按照建议删除本地*db文件,从而重置配置。我那样做了,现在什么都没用了

> rs.initiate()
{
    "info2" : "no configuration explicitly specified -- making one",
    "me" : "0.0.0.0:27017",
    "errmsg" : "couldn't initiate : can't find self in the replset config",
    "ok" : 0
}
> rs.conf()
null
我试图删除并重新安装这个包(我在Ubuntu服务器上这么做),这意味着我的mongodb.conf消失了,init脚本停止工作。这当然很容易解决

那我该如何重新开始呢


注意:我确实看过,但由于rs.conf()不起作用,这也不起作用。

如果您强制重新配置已生成的配置,是否解决了问题

您可以从{{mongo}}shell执行类似于以下的操作:

> cfg = {
...     "_id" : "rs0",
...     "version" : 1,
...     "members" : [
...         {
...             "_id" : 0,
...             "host" : "0.0.0.0:27017"
...         }
...     ]
... }

>rs.reconfig(cfg, {force:true})

您可能需要调整
cfg
变量以获得您的主机名和端口名,因为如果repl集在配置中找不到运行它的节点,那么
在新的replset配置中找不到self
错误将返回到shell。

如果您的计算机主机名没有映射回127.0.0.1,您也会收到此错误。更新你的/etc/hosts和/或你的/etc/hostname,rs.initiate()不带任何配置应该可以工作。

如果你只是在
/etc/mongod.conf
中注释掉
bind\u ip
,这将获得正确的结果,这样你就可以重新发出
rs.initiate()
命令来设置或重新配置副本。

我不得不使用
rs.initiate(cfg)
而不是
rs.reconfig
,否则效果很好!对我来说,我不得不使用
“主机”:“127.0.0.1:27017”
rs.initiate
。不过,ubuntu Precise上的mongo服务器
2.0.4-1ubuntu2.1
,我也不得不使用rs.initiate(cfg)为我修复了这个问题,谢谢。如果你在云实例上更改了主机名,请确保将新主机名添加到/etc/hosti。我还通过确保分配的IP地址也绑定到/etc/mongod.conf文件中的bind_IP设置来纠正这个问题。显然,将其绑定到127.0.0.1并不总是足够的。我必须做些什么milar:由于LAN IP已解析,但不是127.0.0.1,因此我添加了两个-
bind_IP=10.10.1.1127.0.0.1