6

我正在尝试使用此文档在我的 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)
4

3 回答 3

8

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

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

于 2012-10-15T14:58:20.120 回答
2

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

'bind_ip:“127.0.0.1”'

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

于 2012-10-16T18:35:49.167 回答
0

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

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

它现在已修复并计划在 2.2.1 中发布 - 2.2.0 的修复基本上涉及确保您为您的集合使用可解析和可访问的地址,因为 2.2.0 甚至尝试通过网络访问本地实例。

于 2012-10-17T23:17:42.340 回答