Docs 菜单
Docs 主页
/
MongoDB Atlas
/ /

常见问题解答:连接字符串选项

在此页面上

Atlas 提供多个连接字符串。这些字符串允许您从公共和私有上下文连接到集群。Atlas 始终为集群分配唯一的连接字符串,以便两个集群不会在 Atlas 中共享主机名或连接字符串。

要连接 Atlas,请将应用程序指向 URI,以便与集群通信。创建具有多个节点或主机的集群。每个节点都有自己的主机名,可解析为 IP 地址。Atlas 连接的 URI称为连接字符串)可能具有多个主机名。配置 Atlas 以接受从允许的 IP 地址连接到集群主机。

Atlas 通过身份验证和 TLS 确保来自公共 IP 地址的连接安全。如果要连接到私有 IP 地址,则您可以使用:

  • AWS 和 GCP VPC 对等互连

  • Azure VNet 对等互连

  • AWS PrivateLink 和 Azure Private Link

这些功能都能管理安全网络内通过内部 IP 地址进行的通信。

使用安全网络时,Atlas 会提供多个连接字符串。每个网络都提供一个字符串,可以解析为不同 IP 地址。

所有集群都有一个标准连接字符串。该字符串可解析为集群的:

  • 用于互联网连接的公共 IP 地址;和

  • 从对等 VPC 解析时,AWS 集群的 VPC 私有 IP 地址。

对于通过互联网连接或连接到 AWS 对等互连集群的应用程序,请使用此字符串。

具有对等互连网络的集群拥有用于对等互连的私有 IP 连接字符串。此字符串解析为可用于以下人员的 IP 地址:

  • Azure 或 Google Cloud 中的对等互连网络

  • AWS 使用自定义 DNS 服务与集群进行对等互连。

使用该连接字符串连接满足下列条件的应用程序:

  • Azure 或 Google Cloud 对等互连网络中

  • 在使用带自定义 DNS 服务的 AWS 时,连接到 AWS 集群。

配置有私有端点的地区中的 AWSAzure 集群具有一个或多个连接字符串。每个字符串都解析为您的 VPC 或 VNet 中一个网络接口的私有 IP 地址,该接口直接连接至 Atlas VPC 或 VNet 中的负载均衡器。将这些连接字符串用于连接私有端点的应用程序。

在 2020 年 3 月 31 日之前,您需要启用仅对等互连模式才能连接到对等互连网络 Azure 或 Google Cloud 集群上的数据库。此模式:

  • 影响全局 DNS 解析,以及

  • 限制对等互连网络之外的任何数据库连接。

多重视野解除这些限制并解锁以下附加功能:

要利用多个范围,请完成以下任务:

注意

此时,您可以使用现有的启用对等互连的连接字符串继续连接到集群。仅对等互连模式可防止访问改进的功能并减少多范围的限制。要使用新功能并删除旧限制,MongoDB 要求使用新连接字符串。

可以。

更改应用程序,使其使用对等互连私有 IP 连接字符串进行连接。此更改支持应用程序使用 UI 或 API 从对等互连网络进行连接。

要扩展到更多区域,请先在现有 Azure 集群上禁用仅对等互连模式。

要禁用仅对等互连模式,使用:

1
  1. 如果尚未显示,请选择包含所需项目的组织导航栏中的Organizations菜单。

  2. 如果尚未显示,请从导航栏的Projects菜单中选择所需的项目。

  3. 如果 Clusters(数据库部署)页面尚未出现,请单击侧边栏中的 Database(数据库)。

    此时会显示“集群”页面。

2

更改应用程序中使用 Atlas 集群的任何URL ,以将私有 IP 用于对等互连连接字符串。

3
  1. 如果尚未显示,请选择包含所需项目的组织导航栏中的Organizations菜单。

  2. 如果尚未显示,请从导航栏的Projects菜单中选择所需的项目。

  3. Projects(项目)菜单旁边,展开 Options(选项)菜单,然后单击 Project Settings(项目设置)。

    显示“项目设置”页面。

4

Connect via Peering Only (GCP and Azure) 切换为关闭。

1

调用get all API端点返回所有集群及其 MongoDB 版本:

例子

curl --user "{PUBLIC-KEY}:{PRIVATE-KEY}" --digest \
--header "Accept: application/json" \
--header "Content-Type: application/json" \
--include \
--request GET "https://cloud.mongodb.com/api/atlas/v1.0/groups/{GROUP-ID}/clusters?pretty=true"

如果成功,响应应包括:

{
"results": [{
...
"mongoDBMajorVersion": "5.0",
"mongoDBVersion": "5.0.14",
...
},{
...
"mongoDBMajorVersion": "5.0",
"mongoDBVersion": "5.0.12",
... }
]
}
2

更改应用程序中使用 Atlas 集群的任何URL ,以将私有 IP 用于对等互连连接字符串。

3

调用API端点以禁用私有 IP 模式。

例子

使用 curl ,您将调用以下命令:

curl --user "{PUBLIC-KEY}:{PRIVATE-KEY}" --digest \
--header "Accept: application/json" \
--header "Content-Type: application/json" \
--include \
--request PATCH "https://cloud.mongodb.com/api/atlas/v1.0/groups/{GROUP-ID}/privateIpMode?pretty=true" \
--data '
{
"enabled" : false
}'

{GROUP-ID}更改为您项目的项目 ID。

如果成功,响应将显示:

1{
2 "enabled" : false
3}

在 2020 年 3 月 31 日之前,使用自定义 DNS 服务和与 Atlas 对等互连的 VPCAWS 中部署的应用程序,无法通过私有 IP 地址进行连接:

  • 自定义 DNS 解析为公共 IP 地址。

  • AWS 内部 DNS 解析为私有 IP 地址。

AWS 中使用自定义 DNS 服务部署的应用程序应使用 私有 IP 作为对等互连连接字符串。

要显示这些字符串,请执行以下操作:

1
  1. 如果尚未显示,请选择包含所需项目的组织导航栏中的Organizations菜单。

  2. 如果尚未显示,请从导航栏的Projects菜单中选择所需的项目。

  3. Projects(项目)菜单旁边,展开 Options(选项)菜单,然后单击 Project Settings(项目设置)。

    显示“项目设置”页面。

2
  1. Using Custom DNS on AWS with VPC Peering 切换到 On

  2. 查看AWS集群的connect模态窗口。

  3. 选择 Private IP for Peering(对等互连的私有 IP)连接字符串。

连接字符串 URI 的结构表示字符串的类型。如已创建对等互连连接或私有端点,Atlas 会显示多个选项供您使用。

标准连接字符串采用以下格式:

mongodb://xyz456-shard-00-00.ab123.mongodb.net:27017
mongodb+srv://xyz456.ab123.mongodb.net

ab123 之前的点很重要。使用此格式的 URI 解析为公共 IP 地址,除非 从配置了 VPC 对等互连的 AWS 内部进行连接。

重要

此格式更改了旧版连接字符串中的一个字符:集群名称后的连字符 (-) 变为句点 (.)。

例如,此传统连接字符串

mongodb+srv://xyx456-ab123.mongodb.net

写为以下标准连接字符串

mongodb+srv://xyx456.ab123.mongodb.net

对于新集群,副本集和分片的名称不从集群的名称衍生而来。新名称使用六个字母数字字符 ID。

私有连接字符串遵循以下格式:

mongodb://xyx456-shard-00-00-pri.ab123.mongodb.net:27017
mongodb+srv://xyx456-pri.ab123.mongodb.net

ab123之前的-pri很重要。使用此格式的 URI 解析为对等互连网络中可访问的私有 IP 地址。如果您为集群配置网络对等互连,则在连接到集群以利用对等互连时必须使用新的主机名。

重要

在新集群中,副本集和分片的名称不从集群的名称衍生而来。新名称使用六个字母数字字符 ID。

AWS PrivateLink 连接字符串遵循以下格式:

mongodb://pl-0-us-east-1a.ab123.mongodb.net:1024
mongodb+srv://pl-0-us-east-1a.ab123.mongodb.net

如果启用地区化私有端点设置,AWS PrivateLink 接连接字符串将遵循以下格式:

mongodb://pl-0-us-west-1.ab123.mongodb.net:1024
mongodb+srv://cluster0-pl-0-us-west-1.ab123.mongodb.net

使用此格式的 URI 可通过配置 PrivateLink 的 AWS VPC 进行访问,也可以从其他对等互连的 VPC 依次传递访问。

Azure Private Link 连接字符串遵循以下格式:

mongodb://pl-0-eastus2.ab123.mongodb.net:1024
mongodb+srv://pl-0-eastus2.ab123.mongodb.net

如果启用地区化私有端点设置,Azure Private Link 接连接字符串将遵循以下格式:

mongodb://pl-0-eastus2.ab123.mongodb.net:1024
mongodb+srv://cluster0-pl-0-eastus2.ab123.mongodb.net

采用此格式的 URI 可通过有人已配置专用链接的 Azure VNet 进行访问,尽管访问可从其他依次对等互连的 VNet 进行传递。

在 2020 年 3 月 31 日之前,您编写的 Atlas 连接字符串如下所示:

AWS

foo-shard-00-00-ab123.mongodb.net
foo-ab123.mongodb.net

AZURE

foo-shard-00-00-ab123.azure.mongodb.net
foo-ab123.azure.mongodb.net

Google Cloud

foo-shard-00-00-ab123.gcp.mongodb.net
foo-ab123.gcp.mongodb.net

如果启用 Private Only(仅私有)模式,这些主机名将解析为对等互连网络 IP 地址。如果禁用该模式,主机名将解析为公共 IP 地址。

如果您的应用程序在 Peering Only(仅对等互连)模式下使用旧版连接字符串,请切换到专用 IP 以获取对等互连字符串。

如果您有一个旧版连接字符串,想要更改云提供商,则连接字符串必须包含 .gcp.azure,并且您要执行以下操作之一:

  • 迁移到 Google Cloud 或 Azure

  • 移出 Google Cloud 或 Azure

    注意

    任一操作都可能更改连接字符串。在 Atlas 用户界面,在升级完成后单击集群上的 Connect 可以获取更新的连接字符串。

这取决于以下因素:

  • 当前集群使用哪个云提供者

  • 创建集群的时间

如果您在 2020 年 11 月 3 日引入多云集群之前创建了集群,并且您的集群在 Google Cloud 或 Azure 上运行:

  1. 打开集群构建器。

  2. 编辑集群。

  3. 添加目标云提供商的只读节点。

    注意

    如果使用传统备份,请在当前云提供商中保留一个节点,并将其余节点移至目标云提供商。

  4. 审查并提交更改。

  5. 复制形成的以逗号分隔的 URI 连接字符串。

  6. 用这个新的标准连接字符串替换应用程序中的连接字符串。

    这样,您的应用程序就可以连接至来自多个云提供商的节点。

  7. 重新启动您的应用程序。

  8. 确保您的应用程序可以连接到 Atlas。

  9. 第一次更改完成后,请重新配置集群:

    • 使用原始云提供商删除所有可选举节点。

    • 删除目标云提供商的只读节点。

    • 使用目标云提供商添加相同数量的可选举节点。

    注意

    如果使用传统备份,请等待新备份完成后,再将剩余节点移动到目标云提供商。

  10. 审查并提交更改。

  11. 复制形成的以逗号分隔的 URI 连接字符串。

  12. 用这个新的 URI 连接字符串替换应用程序中的 URI 连接字符串。

  13. 重新启动您的应用程序。

  14. 确保您的应用程序可以连接到 Atlas。

如果您的集群在 AWS 上运行,在任何提供者上运行,并且在 2020 年 11 月 2 日之后创建,则您的连接字符串不会更改,也不会出现集群停机。

  1. 打开集群构建器。

  2. 编辑集群。

  3. 更改云提供商。

  4. 审查并提交更改。

后退

常见问题解答:账单