rs.initiate()

在本页面

Description

rs.initiate()方法具有以下参数:

ParameterTypeDescription
configurationdocument可选的。为新副本集指定configuration的文档。如果未指定配置,则 MongoDB 使用默认副本集配置。

rs.initiate()方法提供了围绕replSetInitiate命令的包装。

IP Binding

从 MongoDB 3.6 开始,默认情况下,MongoDB 二进制文件mongodmongos绑定到 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

下面的示例启动一个具有三个成员的新副本集。

三个mongod实例必须以--replSet命令行选项(如果使用配置文件,则为replication.replSetName)和--bind_ip(如果使用配置文件,则为net.bindIp)设置为适当,以便副本集的其他成员和 Client 端可以启动连接。

Warning

绑定到非 localhost(例如可公开访问)的 IP 地址之前,请确保已保护群集免受未经授权的访问。有关安全建议的完整列表,请参见Security Checklist。至少考虑enabling authentication加强网络基础设施

mongo Shell 连接到mongod实例之一并运行rs.initiate()

Note

在副本集的仅一个且仅一个 mongod实例上运行rs.initiate()

rs.initiate(
   {
      _id: "myReplSet",
      version: 1,
      members: [
         { _id: 0, host : "mongodb0.example.net:27017" },
         { _id: 1, host : "mongodb1.example.net:27017" },
         { _id: 2, host : "mongodb2.example.net:27017" }
      ]
   }
)

有关副本集配置的详细信息,请参见副本集配置字段

有关部署副本集的详细信息,请参见部署副本集