【发布时间】:2021-02-23 19:55:09
【问题描述】:
我对 MongoDB 很陌生,并且有以下关于副本集启动的问题。
当我尝试从独立 mongod 启动副本集时,我尝试过:
> use admin
> config = {id: "rs_name", members: [{id: 0, host: "127.0.0.1:27017"}]}
> db.runCommand('replSetInitiate', config)
"info2" : "no configuration specified. Using a default configuration for the set",
"ok": 1
...
这是第一个好奇:为什么我已经将“config”分配为副本集配置,所以它显示“无配置”?
虽然副本集成立,但当我累了:
> use local
> db.system.replset.find().pretty()
...
"members": [
{
"host": "here is hostname insted of host IP"
}
...
这是我没有得到的第二个要点:为什么副本信息显示主机名而不是主机 IP 作为属性“主机”的值?
但是当我尝试不同的方式时:
> use admin
> config = {id: "rs_name", members: [{id: 0, host: "127.0.0.1:27017"}]}
> rs.initiate(config)
一切顺利,没有给出“未指定配置”之类的消息。副本信息还显示主机 IP 而不是主机名。
这是最后一个:replSetInitiate和rs.initiate尝试初始化副本集的机制有什么区别?
【问题讨论】:
-
要查看底层代码,请从 mongo shell 执行
rs.intiate(就像没有括号的那样)。
标签: mongodb replicaset