gpt4 book ai didi

mongodb - 在 OSX 上测试 mongo 复制

转载 作者:IT老高 更新时间:2023-10-28 13:31:23 28 4
gpt4 key购买 nike

在两个不同的终端中,我使用以下命令启动 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

在 shell 中,我将配置设置为

cfg = { _id: "test", members: [ {_id:0, host: "localhost:27001"}, {_id:1, host:"localhost:27002"} ] }

然后运行:

use admin
rs.initiate(cfg)

shell 的响应是:

{
"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 连接得很好。

目前尚不清楚我在哪里搞砸了,但我敢打赌这很明显。

最佳答案

找到了!

事实证明,当使用 brew 在 OSX 上安装 MongoDB 时,会在/usr/local/etc/mongo.conf 中创建一个配置文件。在这个文件中有一行:

# 只接受本地连接 bind_ip = 127.0.0.1

好吧,如果您查看日志,rsStart 错误是:

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)

如果我 ping macbookpro.local,返回的 IP 地址是 192.168.41.1。 192.168.41.1 <> 127.0.0.1 所以 mongod 拒绝回应。从配置中删除此行允许成功设置复制。

嘘。我真是个白痴。看了几个小时,一直认为连接到网络时的机器名称是 127.0.0.1。让这成为你的一个教训——不要变老!

关于mongodb - 在 OSX 上测试 mongo 复制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13447125/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com