On this page
replSetInitiate
在本页面
replSetInitiate
- replSetInitiate命令初始化一个新的副本集。
要运行replSetInitiate
,请使用db.runCommand( { <command> })方法。
Note
仅在副本集的mongod个实例中的一个上运行命令。
使用以下语法:
{ replSetInitiate : <config_document> }
<config_document>
是document,用于指定副本集的配置。例如,以下是用于创建简单的 3 成员副本集的配置文档:
{
_id : <setname>,
members : [
{_id : 0, host : <host0>},
{_id : 1, host : <host1>},
{_id : 2, host : <host2>},
]
}
IP Binding
从 MongoDB 3.6 开始,默认情况下,MongoDB 二进制文件mongod和mongos绑定到 localhost(127.0.0.1
)。如果为二进制文件设置了net.ipv6配置文件设置或--ipv6
命令行选项,则该二进制文件还会绑定到 IPv6 地址::1
。
以前,从 MongoDB 2.6 开始,默认情况下,只有正式 MongoDB RPM(Red Hat,CentOS,Fedora Linux 和派生版本)和 DEB(Debian,Ubuntu 和派生版本)程序包中的二进制文件绑定到 localhost。
当仅绑定到 localhost 时,这些 MongoDB 3.6 二进制文件只能接受来自同一台计算机上运行的 Client 端(包括mongo shell,副本集中的其他成员和分片群集)的连接。远程 Client 端无法连接到仅绑定到 localhost 的二进制文件。
要覆盖并绑定到其他 IP 地址,可以使用net.bindIp配置文件设置或--bind_ip
命令行选项来指定 IP 地址列表。
Warning
绑定到非 localhost(例如可公开访问)的 IP 地址之前,请确保已保护群集免受未经授权的访问。有关安全建议的完整列表,请参见Security Checklist。至少考虑enabling authentication和加强网络基础设施。
例如,以下mongod实例同时绑定到 localhost 和示例 IP 地址198.51.100.1
:
mongod --bind_ip localhost,198.51.100.1
为了连接到该实例,远程 Client 端必须指定 IP 地址198.51.100.1
或与该 IP 地址关联的主机名:
mongo --host 198.51.100.1
mongo --host My-Example-Associated-Hostname
Example
将配置文档分配给变量,然后将文档传递给rs.initiate()帮助器:
config = {
_id : "my_replica_set",
members : [
{_id : 0, host : "rs1.example.net:27017"},
{_id : 1, host : "rs2.example.net:27017"},
{_id : 2, host : "rs3.example.net", arbiterOnly: true},
]
}
rs.initiate(config)
请注意,省略端口会导致主机使用默认端口 27017.还要注意,您可以在配置文档中指定其他选项,例如本例中的arbiterOnly
设置。