连接 MongoDB 部署
本页概述如何使用 MongoDB for VS Code 扩展连接到 MongoDB 主机。您可以连接到独立运行主机、副本集主机或分片集群主机。
注意
MongoDB Atlas
如果您需要创建 MongoDB 主机,请考虑使用 MongoDB Atlas 。Atlas 是云托管数据库服务,无需安装,即可提供免费入门套餐和可复制的 URI,轻松将 VS Code 扩展连接部署。
要在 Atlas 免费套餐上创建集群,请在 Visual Studio Code Command Palette 中运行命令 MongoDB: Open Overview Page
,然后单击 Create free cluster 。
要使用 VS Code 扩展中包含的 Terraform 模板创建 Atlas 集群,请参阅 使用 Terraform 从模板创建 Atlas 集群。
如果需要安装 VS Code 扩展,请参阅安装 MongoDB for VS Code 扩展,了解相关说明。
Considerations
创建连接
VS Code 扩展提供了两个连接到部署的选项:
连接方法 | 说明 |
---|---|
Connect with Connection String | 这种方法比使用高级连接设置更快、更简单。如果您的部署托管在 Atlas 上,或者您已具有部署的连接字符串,请使用该选项。 |
Advanced Connection Settings | 该方法允许您使用表单构建连接字符串。如果您需要自定义连接字符串,并希望查看可用的连接选项,请使用该选项。 |
注意
要指定 VS Code 扩展连接的保存位置,请使用Default Connection Saving Location设置。
当您提供连接字符串时,VS Code 扩展支持 MongoDB 所支持的大多数连接字符串选项。
获取连接字符串。
您可以使用标准连接字符串格式或 DNS 种子列表连接格式。
要获取 Atlas 集群的连接字符串:
前往 Atlas Clusters(集群)视图。
点击所需集群的 Connect(连接)。
单击 Connect with MongoDB Compass(连接)。
复制提供的连接字符串。
要了解如何为未托管在 Atlas 上的部署格式化连接字符串,请参阅连接字符串 URI 格式。
打开 Visual Studio Code 命令面板。
打开 Visual Studio Code 命令面板,粘贴连接字符串并连接到集群。可以通过以下方式之一打开命令面板:
从 VSCode 的左侧菜单栏中选择 MongoDB 图标。
点击放大如果左侧导航栏中的 Connections(连接)窗格已折叠,请将其展开。
点击放大单击 More Actions 菜单 (...),然后选择 Add MongoDB Connection with Connection String...。
点击放大
请根据操作系统和方法执行下表所述操作:
操作系统方法操作Any
Visual Studio Code 菜单
View > Command Palette
macOS
键盘快捷键
按
Command
+Shift
+P
Windows 和 Linux
键盘快捷键
按
Control
+Shift
+P
从命令面板中,选择 MongoDB: Open Overview Page。
提示
在命令面板中输入
mongodb
以显示可以使用的所有VS Code扩展命令。在概览页面中,单击 Connect with Connection String 下的 Connect。
请根据操作系统和方法执行下表所述操作:
操作系统方法操作Any
Visual Studio Code 菜单
View > Command Palette
macOS
键盘快捷键
按
Command
+Shift
+P
Windows 和 Linux
键盘快捷键
按
Control
+Shift
+P
从命令面板中,选择 MongoDB: Connect with Connection String...。
提示
在命令面板中输入
mongodb
以显示可以使用的所有VS Code扩展命令。
打开 VS Code 扩展概述页面
您可以使用 MongoDB 视图或命令面板来打开概览页面:
如果左侧导航栏中的 Connections(连接)窗格已折叠,请将其展开。
点击放大单击 More Actions 菜单 (...),然后单击 Add MongoDB Connection 打开 VS Code 扩展概述页面。
点击放大
请根据操作系统和方法执行下表所述操作:
操作系统方法操作Any
Visual Studio Code 菜单
View > Command Palette
macOS
键盘快捷键
按
Command
+Shift
+P
Windows 和 Linux
键盘快捷键
按
Control
+Shift
+P
从命令面板中,选择 MongoDB: Open Overview Page。
提示
在命令面板中输入
mongodb
以显示可以使用的所有VS Code扩展命令。
输入您的连接信息。
重要
VS Code 扩展不支持以下连接选项:
CSFLE 正在使用的加密
Kerberos 身份验证
General 标签页包含以下选项:
选项 | 说明 | ||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Connection Type | 连接类型。从标签页中选择连接类型,获取定义该连接类型的具体说明: 对于独立运行的实例,请指定以下内容:
单击,指定其他主机名和相关端口。 对于副本集,请指定以下内容:
单击,指定其他主机名和相关端口。 对于 SRV 记录,请指定 Hostname。您不需要指定端口。 SRV 连接字符串的前缀为 例如: 如果以下是 MongoDB 部署的 SRV 连接字符串:
然后,在 VS Code 扩展中,您可以将 Hostname 指定为:
| ||||||||||||||||||||||
Authentication | 如果部署需要身份验证,则使用身份验证。Atlas 集群使用 Username / Password 身份验证。 选择身份验证方法以获取具体说明: 如果部署使用 MongoDB-CR、SCRAM-SHA-1 或 SCRAM-SHA-256 作为身份验证机制,请选择 Username / Password。 提供 Username、Password和身份验证数据库以对用户进行身份验证。 如果部署使用 OpenID Connect 作为身份验证机制,请选择 OIDC。 提供以下信息:
这是一种安全性较低的身份验证流程,并可在基于浏览器的身份验证不可用时用作后备方案。 如果部署使用 X.509 作为其身份验证机制,请选择 X.509。如果选中,则必须提供 Username 以对用户进行身份验证。 如果使用的是 Atlas 管理的证书,用户名前必须有“CN=”(依照 RFC 2253 )。例如,用户名“X509User”的提供方式必须为“CN=X509User”。 如果部署使用 LDAP 作为身份验证机制,请选择 LDAP。如果选中,则必须提供 Username 和 Password 以对用户进行身份验证。 如果部署使用 AWS IAM 作为其身份验证机制,请选择 AWS IAM。
|
如果要使用 TLS/SSL 或 SSH 隧道连接到部署,请参阅以下标签页以获取具体说明:
此选项指示 VS Code 扩展通过 TLS/SSL 连接到您的 MongoDB 部署。您可以选择以下 SSL 选项之一:
选项 | 说明 | ||||||||
---|---|---|---|---|---|---|---|---|---|
System CA/Atlas Deployment | 连接到 MongoDB Atlas。 | ||||||||
Server Validation | VS Code 扩展会验证部署的身份。如果选中,您必须提供:
| ||||||||
Server and Client Validation | 部署从其客户端执行证书验证,并且 VS Code 扩展验证部署的身份。如果选中,您必须提供:
| ||||||||
Unvalidated (Insecure) | 使用 TLS/SSL,无需任何身份验证。 |
提示
对于生产用途,MongoDB 部署应使用由单个证书颁发机构生成和签名的有效证书。您可以生成并维护独立的证书颁发机构,或使用第三方 TLS/SSL 供应商生成的证书。
此选项指示 VS Code 扩展通过 SSH 隧道连接到您的 MongoDB 部署。当您连接到 MongoDB 时隧道会自动启动,当您断开连接时隧道会自动停止。
在 SSH Tunnel 下拉列表中,选择密码或身份文件以提供身份验证。选择识别方法后,请指定以下选项:
SSH Hostname | 输入 bastion (jumpbox) 主机名。这是计算机要访问的唯一标识符(完全限定的域名或 FQDN)。 |
SSH Tunnel Port | 提供用于 SSH 连接的端口。默认为 22,即 SSH 的标准端口。 |
SSH Username | 用于登录远程系统的配置文件的用户名。这是您要为其建立 SSH 连接的用户。 |
SSH Identity File | 选择要读取 SSH 公钥身份验证所用身份(私钥)的文件。 Unix 或 OS X:如果使用 OpenSSH,可在
在 Windows 上,身份文件的位置取决于您所选择的 SSH 客户端,如 PuTTY。 |
SSH Passphrase | 如果私钥已加密,请提供用于解密私钥的密码(存储在指定的身份文件中)。密码为 SSH 连接提供额外的安全层。 |
SSH Password | 用于保护 SSH 连接的密码。如果不使用身份文件,则这是必需的。 |
要通过堡垒主机使用 SSH 隧道,堡垒主机上的 SSH 配置必须允许 TCP 端口转发;即,/etc/ssh/sshd_config
文件中的 AllowTcpForwarding
指令设置为 yes
。如果 AllowTcpForwarding
未设置为 yes
,请将其设置为 yes
并重新启动 SSH守护进程(sudo service sshd restart
)。
您也可以通过命令行手动创建 SSH 隧道,而不是使用 VS Code 扩展:
ssh -L <local_port>:<mongodb_hostname>:<mongodb_port> \ <user>@<bastion_hostname> -fN
例子
如果您在端口 27017 的 hostname-a.com
上运行部署,并且堡垒主机为 hostname-b.com
,用户名为 ec2-user
,则可以通过以下方式构建隧道
ssh -L 27000:hostname-a.com:27017 ec2-user@hostname-b.com -fN
使用此 SSH 通道,现在就可以将 VS Code 扩展(或 mongo
shell)连接到 localhost:27000
, 以连接在 hostname-a.com
上运行的部署。
注意
您无法通过 SSH 隧道连接到副本集。VS Code 扩展无法通过同一 SSH 隧道与多个服务器建立连接。
可选:在 Advanced(高级)标签页中指定其他选项
您可以选择 Read Preference,它指定 VS Code 扩展如何指示读取操作:
读取偏好模式 | 说明 |
---|---|
Primary | 默认模式。从当前副本集主节点读取的所有操作。 |
Primary Preferred | 在大多数情况下,操作将从主节点读取,但如果主节点不可用,则操作将从从节点成员读取。 |
Secondary | 所有操作均会从副本集的从节点中读取。 |
Secondary Preferred | 在大多数情况下,操作将从从节点读取,但如果从节点不可用,则操作将从主节点读取。 |
Nearest | 从副本集节点读取的操作,无论节点类型如何,网络延迟都最小。 |
如果省略,则默认值为 Primary。要了解有关读取偏好的更多信息,请参阅读取偏好。
您可以使用以下选项指定其他 MongoDB 连接行为:
连接到 Atlas Stream Processing
1.50 版本的新增功能。
您可以提供 Stream Processing 接口 (SPI) 连接字符串,以使用 VS Code 扩展连接到 Atlas Stream Processing。
有关如何配置 Atlas Stream Processing 的详细信息,请参阅管理 Stream Processing 实例。
粘贴 SPI 连接字符串
要获取 SPI 连接字符串,请登录到您的 Atlas 帐户。单击左侧导航栏中的 Stream Processing,然后选择一个 Stream Processing 实例。单击 Connect(连接),然后从连接对话框的 Choose a Connection Method(选择连接方法)页面中选择 MongoDB for VSCode。
提示
有关使用和配置 Atlas Stream Processing 的完整详细信息,请参阅 Atlas Stream Processing 概述。
以下代码块是一个 SPI 连接字符串示例:
mongodb://user1:password1@atlas-stream-xxxxxxxxxxxxxxxxxxxxxxxx-yyyyy.virginia-usa.a.query.mongodb.net/?authSource=admin&readPreference=primary&ssl=true&directConnection=true
在连接后,流连接将显示在 Connections(连接)窗格下面:
激活连接
您一次只能将 VS Code 扩展连接到一个部署。要将活动连接更改为其他部署,或要连接到已断开连接的部署,请执行以下操作:
启动 MongoDB Shell
您可以将 MongoDB Shell 或旧版 mongo
shell 连接到活动部署。
Considerations
VS Code 扩展用于连接到部署的 shell 由扩展设置中的 Shell 设置确定。您可以选择 MongoDB Shell 或旧版
mongo
shell。所选 Shell 的路径必须存在于系统的
PATH
中。如果它不存在于PATH
中,则操作出错。
步骤
要将 Shell 连接到活动部署,请执行以下操作:
在 VS Code 扩展 Connections 列表中,右键单击活动部署。
选择 Launch MongoDB Shell 。
VS Code 扩展在 VS Code 中打开 Terminal 窗口,并启动连接到所选部署的 shell。
编辑连接
复制连接
您可以从现有的 Visual Studio Code 连接中复制连接字符串。
重命名连接
要在 VS Code 扩展中重命名与部署的连接,请执行以下操作:
断开与部署的连接
VS Code Extension 提供了两种从部署断开连接的方法。您可以执行以下操作:
使用命令面板断开连接。
断开与 Activity Bar 中 MongoDB 视图的连接。
与 MongoDB 实例断开连接会关闭 VS Code 扩展与活动实例的连接。必须重新连接,才能再次与部署中的数据交互。
删除连接
VS Code 提供两种方法从 Visual Studio Code 中删除与部署的连接。您可以执行以下操作:
从Activity Bar中的MongoDB视图中删除连接。
使用命令面板删除连接。
重要
从 Visual Studio Code 中删除连接会将其同时从当前工作区和 Visual Studio Code 中全局删除。