在两个不同的终端中,我使用以下命令启动 mongod:
mongod --dbpath 1 --port 27001 --smallfiles --oplogSize 50 --logpath log.1 --replSet test
mongod --dbpath 2 --port 27002 --smallfiles --oplogSize 50 --logpath log.2 --replSet test
(数据子目录 1 和 2 已经创建)。
我进入第三个窗口并针对其中一个 mongod 实例运行 mongo shell
mongo --port 27001
在外壳中,我将配置设置为
cfg = { _id: "test", members: [ {_id:0, host: "localhost:27001"}, {_id:1, host:"localhost:27002"} ] }
然后运行:
use admin
rs.initiate(cfg)
来自外壳的响应是:
{
"startupStatus" : 4,
"info" : "hotest",
"errmsg" : "all members and seeds must be reachable to initiate set",
"ok" : 0
}
例如,端口 27001 上的日志文件报告:
Sun Nov 18 18:32:56 [rsStart] trying to contact macbookpro.local:27001
Sun Nov 18 18:32:56 [rsStart] couldn't connect to macbookpro.local:27001: couldn't connect to server macbookpro.local:27001
Sun Nov 18 18:32:56 [rsStart] replSet can't get local.system.replset config from self or any seed (yet)
看来 rs.initiate(cfg) 无法连接到端口 27001 上的 mongod 实例。但是当我在没有 --replSet 的情况下运行 mongod 时,mongo shell 连接得很好。
目前尚不清楚我在哪里搞砸了,但我敢打赌这很明显。