MongoDB分片集群实例分别提供Mongos、Shard和ConfigServer组件单独的连接地址,以及适用于应用程序连接的高可用ConnectionStringURI和ConnectionStringURI SRV地址。本文介绍分片集群实例连接地址的获取方式和连接说明。
获取数据库连接地址
- 访问MongoDB分片集群实例列表,在上方选择资源组和地域,然后单击目标实例ID。 
- 在目标实例页面的左侧导航栏,单击数据库连接。获取目标节点的连接地址。 
连接地址说明
连接地址网络类型
| 网络类型 | 说明 | 
| 私网 | 
 | 
| 公网 | 由于通过公网连接实例存在一定的安全风险,云数据库MongoDB实例默认未提供公网连接地址。如果您需要公网连接可手动申请公网连接地址。 | 
连接地址类型
| 地址类型 | 说明 | 
| ConnectionStringURI SRV地址【推荐】 | 在MongoDB中,SRV是一种DNS记录类型,它提供了一种简化MongoDB连接字符串的机制,并支持自动发现集群成员。 当分片集群实例增删mongos节点时,使用SRV地址可以无感与实例交互,简化了应用程序的设计和维护。 重要  
 | 
| ConnectionStringURI地址 | 云数据库 MongoDB 版提供了Mongos组件和Shard组件的ConnectionStringURI地址。 相比较单节点连接串,生产环境的应用程序建议通过ConnectionStringURI连接数据库,客户端自动将请求发送到Mongos组件的多个节点上,实现负载均衡。Mongos组件的某个节点出现故障时,客户端能自动进行故障切换,将请求发送到状态正常的Mongos节点上。 说明  
 | 
| Mongos地址 | Mongos组件的连接地址,包括主节点(Primary)的连接地址。 说明  日常测试时,仅需连接Mongos组件的任意节点。 | 
| Shard地址 | Shard组件的连接地址,包括主节点(Primary)、从节点(Secondary)和只读节点(ReadOnly)的连接地址。 说明  
 | 
| ConfigServer地址 | ConfigServer组件的连接地址,包括主节点(Primary)和从节点(Secondary)的连接地址。 说明  
 | 
各连接地址的格式、参数说明以及示例如下:
ConnectionStringURI SRV地址
格式:
mongodb+srv://<username>:<password>@<srv-host>/<database>?[authSource=<authenticationDatabase>]<other_options>参数说明:
| 参数 | 说明 | 
| 
 | 连接字符串的前缀,表示使用DNS SRV记录进行服务发现。 | 
| 
 | 数据库账号的名称,默认为root。 | 
| 
 | 数据库账号的密码。 | 
| 
 | 主机名。 | 
| 
 | 要访问的数据库名称,默认为admin。 | 
| 
 | 该参数用于指定数据库账号所属的数据库。 说明  云数据库MongoDB的SRV连接串的TXT记录指明了 | 
| 
 | 其他可选参数。 说明  SVR连接的SSL选项默认值为true,如果您不需要使用SSL加密连接,需要在连接串上添加参数 | 
示例:
数据库账号为test,所属数据库为admin。
mongodb+srv://test:****@dds-2zef4c23****-srv.mongodb.pre.nosql.aliyuncs.com/admin?ssl=falseConnectionStringURI地址
Mongos组件和Shard组件的ConnectionStringURI地址的说明分别如下:
Mongos
推荐生产环境的应用程序通过ConnectionStringURI连接数据库,客户端自动将请求发送到Mongos组件的多个节点上,实现负载均衡。Mongos组件的某个节点出现故障时,客户端能自动进行故障切换,将请求发送到状态正常的Mongos节点上。
格式:
mongodb://<username>:<password>@<host1>:<port1>,<host2>:<port2>,...,<hostN>:<portN>/<database>[?&authSource=<authenticationDatabase>]| 参数 | 说明 | 
| 
 | 数据库账号的名称,默认为root。 | 
| 
 | 数据库账号的密码。 | 
| 
 | Mongos组件中节点的域名信息。 | 
| 
 | Mongos组件中节点的端口。 | 
| 
 | 要访问的数据库名称,默认为admin。 | 
| 
 | 该参数用于指定数据库账号所属的数据库。 | 
示例:
数据库账号为test,所属数据库为admin。
mongodb://test:****@s-bp1c010266f6****.mongodb.rds.aliyuncs.com:3717,s-bp1773180e38****.mongodb.rds.aliyuncs.com:3717/adminShard
Shard组件的ConnectionStringURI地址为高可用地址,实现负载均衡及高可用,连接该地址可以执行数据库的读写操作。该地址包含Shard组件中所有节点的地址,建议生产环境的应用程序通过该地址连接实例。
生产环境的应用程序建议通过ConnectionStringURI地址连接实例,可以确保连接的节点始终为主节点,不会因为主备切换而影响应用的读写操作。
格式:
mongodb://<username>:<password>@<host1>:<port1>,<host2>:<port2>,...,<hostN>:<portN>/<database>[?&authSource=<authenticationDatabase>]参数说明:
| 参数 | 说明 | 
| 
 | 数据库账号的名称,默认为root。 | 
| 
 | 数据库账号的密码。 | 
| 
 | 主节点、从节点和只读节点的域名信息。 | 
| 
 | 主节点、从节点和只读节点的端口。 | 
| 
 | 要访问的数据库名称,默认为admin。 | 
| 
 | 该参数用于指定数据库账号所属的数据库。 | 
| 
 | 该参数可以实现读写分离和负载均衡,能够将写请求发送到主节点,将读请求发送到参数指定节点,取值说明如下: 
 说明  当读请求发送到从节点和只读节点时,可能会出现负载不均的情况,如果需要进一步指定节点,请设置参数readPreferenceTags。 | 
| 
 | 该参数可以将读请求优先发送到标签对应的节点。通常与参数readPreference一起使用,与 
 | 
MongoDB实例可以灵活使用readPreference和readPreferenceTags参数,通过不同标签的组合,实现不同的场景需求:
| 读请求主节点响应策略 | 读请求发送的节点 | 参数组合方案 | 
| 读请求失败情况下,读请求发送到主节点 | 优先读主节点 | 
 | 
| 优先读从节点和只读节点 | 
 | |
| 优先读从节点 说明  如果从节点故障,读请求发送到主节点。 | 
 | |
| 优先读只读节点 说明  如果只读节点故障,读请求发送到主节点。 | 
 | |
| 读请求失败情况下,读请求不发送到主节点 | 仅读从节点和只读节点 | 
 | 
| 仅读从节点 说明  如果从节点故障,读取操作失败。 | 
 | |
| 仅读只读节点 说明  如果只读节点故障,读取操作失败。 | 
 | 
示例:
mongodb://test:****@d-bp1586cb62bf53b****.mongodb.rds.aliyuncs.com:3717,d-bp1586cb62bf53b****.mongodb.rds.aliyuncs.com:3717/adminMongos地址
格式:
<host>:<port>参数说明:
| 参数 | 说明 | 
| 
 | Mongos组件中节点的域名信息。 | 
| 
 | Mongos组件中节点的端口。 | 
示例:
s-bp1c010266f6****.mongodb.rds.aliyuncs.com:3717Shard地址
格式:
<host>:<port>参数说明:
| 参数 | 说明 | 
| 
 | Shard组件中节点的域名信息。 | 
| 
 | Shard组件中节点的端口。 | 
示例:
d-bp1c010266f6****.mongodb.rds.aliyuncs.com:3717ConfigServer地址
格式:
<host>:<port>参数说明:
| 参数 | 说明 | 
| 
 | ConfigServer组件中节点的域名信息。 | 
| 
 | ConfigServer组件中节点的端口。 | 
示例:
cs-bp1c010266f6****.mongodb.rds.aliyuncs.com:3717登录MongoDB数据库
- 获取如下信息: - 数据库账号,初始账号为root。 重要- 不建议在生产环境中直接使用root账号连接数据库。您可以创建数据库账号并分配权限。 
- 数据库账号对应密码。如果没有设置或忘记密码,您可以设置或重置密码。 
- 要访问的数据库。当数据库账号为root时,对应的数据库为admin。 
 
- 登录数据库。您可以选择以下任意一种方法登录: