如何在我的mac上部署测试replset时修复“EMPTYUNREACHABLE”?

时间:2012-10-15 14:12:58

标签: mongodb localhost replication

我正在尝试使用此文档在我的macbook pro上部署开发/测试复制集。

http://docs.mongodb.org/manual/tutorial/deploy-replica-set/

我启动了3个mongod实例,每个实例都在端口10001,10002,10003上 我使用配置文件启动mongod。下面的配置文件:

rs0:

dbpath = /Users/Thomas/mongodb/data/rs0/
port = 10000
logpath = /Users/Thomas/mongodb/log/rs0.log
logappend = true
replSet = rs0

rs1:

dbpath = /Users/Thomas/mongodb/data/rs1/
port = 10001
logpath = /Users/Thomas/mongodb/log/rs1.log
logappend = true
replSet = rs0

rs2:

dbpath = /Users/Thomas/mongodb/data/rs2/
port = 10002
logpath = /Users/Thomas/mongodb/log/rs2.log
logappend = true
replSet = rs0

使用以下命令启动:

mongod -f config/rs0.conf
mongod -f config/rs1.conf
mongod -f config/rs2.conf

然后我使用mongo:mongo localhost:10001连接到它,但是当我使用rs.initiate()命令初始化repl集时,它失败了。

> rs.initiate()
{
"startupStatus" : 4,
"info" : "rs0",
"errmsg" : "all members and seeds must be reachable to initiate set",
"ok" : 0
}

并通过rs.status()

检查
> rs.status()
{
"startupStatus" : 4,
"errmsg" : "can't currently get local.system.replset config from self or any seed (EMPTYUNREACHABLE)",
"ok" : 0
}

日志显示它是EMPTYUNREACHABLE错误。怎么解决呢?

***** SERVER RESTARTED *****

Mon Oct 15 22:02:31 [initandlisten] MongoDB starting : pid=568 port=10000              dbpath=/Users/Thomas/mongodb/data/rs0/ 64-bit host=bogon
Mon Oct 15 22:02:31 [initandlisten]
Mon Oct 15 22:02:31 [initandlisten] ** WARNING: soft rlimits too low. Number of files is 256, should be at least 1000
Mon Oct 15 22:02:31 [initandlisten] db version v2.2.0, pdfile version 4.5
Mon Oct 15 22:02:31 [initandlisten] git version: f5e83eae9cfbec7fb7a071321928f00d1b0c5207
Mon Oct 15 22:02:31 [initandlisten] build info: Darwin bs-osx-106-x86-64-1.local 10.8.0 Darwin Kernel Version 10.8.0: Tue Jun  7 16:33:36 PDT 2011; root:xnu-1504.15.3~1/RELEASE_I386 i386 BOOST_LIB_VERSION=1_49
Mon Oct 15 22:02:31 [initandlisten] options: { config: "config/rs0.conf", dbpath: "/Users/Thomas/mongodb/data/rs0/", logappend: "true", logpath: "/Users/Thomas/mongodb/log/rs0.log", port: 10000, replSet: "rs0", rest: "true" }
Mon Oct 15 22:02:31 [initandlisten] journal dir=/Users/Thomas/mongodb/data/rs0/journal
Mon Oct 15 22:02:31 [initandlisten] recover : no journal files present, no recovery needed
Mon Oct 15 22:02:31 [websvr] admin web console waiting for connections on port 11000
Mon Oct 15 22:02:31 [initandlisten] waiting for connections on port 10000
Mon Oct 15 22:02:37 [rsStart] trying to contact bogon:10000
Mon Oct 15 22:02:43 [rsStart] couldn't connect to bogon:10000: couldn't connect to server bogon:10000
Mon Oct 15 22:02:49 [rsStart] replSet can't get local.system.replset config from self or any seed (yet)
Mon Oct 15 22:03:05 [rsStart] trying to contact bogon:10000
Mon Oct 15 22:03:11 [rsStart] couldn't connect to bogon:10000: couldn't connect to server bogon:10000
Mon Oct 15 22:03:17 [rsStart] replSet can't get local.system.replset config from self or any seed (yet)
Mon Oct 15 22:03:33 [rsStart] trying to contact bogon:10000
Mon Oct 15 22:03:39 [rsStart] couldn't connect to bogon:10000: couldn't connect to server   bogon:10000
Mon Oct 15 22:03:45 [rsStart] replSet can't get local.system.replset config from self or any seed (yet)
Mon Oct 15 22:04:01 [rsStart] trying to contact bogon:10000
Mon Oct 15 22:04:07 [rsStart] couldn't connect to bogon:10000: couldn't connect to server bogon:10000
Mon Oct 15 22:04:13 [rsStart] replSet can't get local.system.replset config from self or any seed (yet)

3 个答案:

答案 0 :(得分:8)

尝试将bind_ip设置为127.0.0.1或将“bogon”条目添加到/ etc / hosts中?

mongodb似乎正在获取本地系统的hostname(),但它无法解析。

答案 1 :(得分:2)

我今天遇到了确切的问题。我能够启动mongodb而不是副本集。我不得不从mongod.conf文件中删除以下行

'bind_ip:“127.0.0.1”'

我还发现mongodb和副本集的mongod.conf文件不同并存储在不同的位置,可能是因为我brew安装了最新版本的mongodb?。我在“/usr/local/etc/mongod.conf”找到了我的副本集配置文件。

答案 2 :(得分:0)

仅供参考,我相信你在2.2.0中遇到了这个错误:

https://jira.mongodb.org/browse/SERVER-7367

现在已修复并计划在2.2.1中发布 - 2.2.0的修复主要涉及确保为您的集使用可解析和可访问的地址,因为2.2.0试图通过网络到达本地实例。