mongodb副本集主机名更改错误

标签 mongodb

我在 ubuntu 上有一个 mongodb 副本集。在副本集中,主机被定义为 localhost。你可以看到;

{
    "_id" : "myrep",
    "version" : 4,
    "members" : [
            {
                    "_id" : 0,
                    "host" : "localhost:27017"
            },
            {
                    "_id" : 2,
                    "host" : "localhost:27018"
            },
            {
                    "_id" : 1,
                    "host" : "localhost:27019",
                    "priority" : 0
            }
    ]

}

我想用服务器的真实 IP 更改主机地址。但是当我运行 rs.reconfig 时,我得到了错误:

{
    "assertion" : "hosts cannot switch between localhost and hostname",
    "assertionCode" : 13645,
    "errmsg" : "db assertion failure",
    "ok" : 0

}

我该如何解决? 谢谢。

最佳答案

有一种更简洁的方法可以做到这一点:

use local
cfg = db.system.replset.findOne({_id:"replicaSetName"})
cfg.members[0].host="newHost:27017"
db.system.replset.update({_id:"replicaSetName"},cfg)

然后重启mongo

关于mongodb副本集主机名更改错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7954535/

相关文章:

mongodb - MongoDb 2.2、2.4 和 2.6 中的 Map-Reduce 性能

javascript - Node js mongoose 根据日期过滤结果

java - 如何使用 Hibernate OGM 检索嵌入对象

c# - Aggregate() 的 MongoDB 结果集

mongodb - 将 MongoDB 作为源连接到 Kafka 时出错

javascript - Mongoose : insert data into an array of nested objects

java - MongoDB - 分组依据 - 聚合 - java

mongodb - 为什么 MongoDB 中的覆盖查询有时会变慢?

python - 我在连接 mongodb Atlas : "dns.exception.Timeout: The DNS operation timed out after 30.000985383987427 seconds" 时收到此错误

mysql - 用于中等复杂度搜索系统的 SQL 与 NoSQL