gpt4 book ai didi

mongodb - 如何使用 MongoDB 配置副本集

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

我遇到了无法解决的问题。部分原因是我无法用正确的术语来解释它。我是新手,很抱歉这个笨拙的问题。

您可以在下面看到我的目标概览。

我想在 MongoDB 中配置复制集,我尝试过这样

use local
db.dropDatabase()

config = { _id: "rs0", members:[
{_id: 0, host: 'localhost:27017'}]
}

rs.initiate(config)

我希望每件事都是正确的,但这里显示以下错误消息

{ "errmsg" : "server is not running with --replSet", "ok" : 0 }

我在这里做错了吗?

有什么想法吗?

最佳答案

您实际上可以关注 MongoDB Manual设置您的副本集。这很清楚。以下是一些关键步骤,如下所述:

  1. 更改配置文件并添加以下行。不要将其与主/从复制混淆,因为副本集旨在替代主/从复制。所以你可能想从你的配置文件中删除那些主/从相关的配置。

    replSet = [set name]

    EDIT:replSet 在最近版本的 mongoDB 中似乎不再存在,至少它是 no longer documented 。在我的情况下,以下似乎已经成功了。

    replication: 
    replSetName: "smm"
  2. 重启你的mongod实例:

    systemctl restart mongodb
    // or
    service mongod restart
  3. 转到本地数据库并启动您的副本集。不要将任何内容传递给启动函数,mongodb 会处理好一切。请注意,它将使用您的主机名作为当前实例的名称,据我所知,更改并不容易。因此,您可能需要先更改主机名。

    use local
    rs.initiate()

就是这样。你的套装很适合。如果您有其他成员加入集合,您需要执行 1/2 步骤,然后转到您的主实例并输入:

rs.add("hostname:port")

只有当你想改变副本集的配置时,你才需要输入:

var conf = rs.conf();
// change your conf here
rs.reconfig(conf);

注意这会导致服务器离线一段时间。如果您在网上进行,请小心。

关于mongodb - 如何使用 MongoDB 配置副本集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23210587/

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