Docs 菜单

Docs 主页查看和分析数据MongoDB Compass

Compass 连接错误

在此页面上

  • MongoDB 未在提供的主机和端口上运行
  • 插入文档按钮已禁用且无法修改文档
  • 与集群分片的连接已关闭
  • 不是主节点或无法写入从节点
  • 身份验证失败
  • 查看 Compass 日志
  • 其他资源

此页面的各部分列出了连接 MongoDB Compass 时常见的错误, 并提供了可能的解决方案。

当 Compass 尝试连接到指定主机和端口上的数据库时,连接失败。

此错误通常出现在以下情况下:

  • 您未向 Compass 连接对话框提供主机名,或所提供的主机名无效。

  • 目标服务器拒绝错误端口上的连接。

  • MongoDB 集群或服务器已关闭,或服务器主机名已更改。

  • 您的防火墙主动拦截与本地网络的连接。

此问题的解决方案可能取决于您 MongoDB 环境的配置方式。 选择您 MongoDB 环境的对应标签页以查看潜在的解决方案:

使用 Compass 时,您可能处于无法执行任何写操作、 只能读取数据的状态。

当您处于这种状态时:

  • Create CollectionInsert Document 按钮被禁用。

  • 您无法修改任何文档。

造成此行为的可能原因有两个:

  • 您已连接到集群的从节点成员,但该成员不支持写入操作。

  • 您使用的是 Compass Readonly 版本,该版本不支持写入操作。

在 Compass 连接对话框中,将 Read Preference(读取偏好)设置为 Primary(主节点)。这将确保您连接到集群的主节点,主节点支持写入操作。

检查 Replica Set Name(副本集名称)是否准确。只有在副本集名称准确时,Compass 才能正确识别主节点。

如果集群托管在 Atlas 中,则您可以通过以下过程, 获取正确的副本集名称:

  1. 前往 Atlas Clusters(集群)视图。

  2. 点击所需集群的 Connect(连接)。

  3. 单击 Connect with MongoDB Compass(连接)。

  4. 复制提供的连接字符串。

  5. 打开 MongoDB Compass。

  6. 单击 Yes(是)可自动填写连接设置。

    显示自动填写连接对话框的图像

不支持在 Compass Readonly 版本中执行写入操作。您可以通过打开顶级 Compass 下拉菜单并选择 About MongoDB Compass 来检查 Compass 版本。

要执行写入操作,您必须下载不同版本的 MongoDB Compass。有关 Compass 版本之间差异的更多信息,请参阅 Compass 版本的功能。

此错误意味着在初始设置完成之前已关闭与您的 MongoDB 集群的连接。

您可能会在 MongoDB Compass 中看到类似以下内容的错误:

connection 3 to cluster0-shard-00-00-a1b2c.mongodb.net:27017 closed

此错误的最常见来源是运行 Compass 的公共 IP 地址缺少 Atlas IP 白名单条目。

确保 Compass 运行的公共 IP 地址包含在 Atlas 项目的 IP 白名单中。

要配置 Atlas 白名单,请执行以下操作:

  1. 使用 Atlas 左上角的Context下拉菜单,选择所需的 Atlas 项目。

  2. 单击 Security 标签页。

  3. 单击 IP Whitelist(IP 白名单)菜单选项。

  4. 如果您的 IP 地址不在白名单中,请点击 Add IP Address

  5. 单击 Add Current IP Address(连接)。

  6. 单击 Confirm(连接)。

Atlas 会识别白名单中的哪些条目包含您当前的 IP 地址,并在这些地址后面附加 (includes your current IP address) (包括您当前的 IP 地址)。

提示

另请参阅:

有关配置白名单条目的更多信息,请参阅 Atlas 文档中的配置白名单条目

此错误消息表明您已连接到副本集的一个从节点,但未提供正确的副本集名称,并且需要连接到 Read Preference 中的主节点。

您应该确保在 Compass 连接对话框提供正确的副本集名称。

如果集群托管在 Atlas 中,则您可以通过以下过程, 获取正确的副本集名称:

  1. 前往 Atlas Clusters(集群)视图。

  2. 点击所需集群的 Connect(连接)。

  3. 单击 Connect with MongoDB Compass(连接)。

  4. 复制提供的连接字符串。

  5. 打开 MongoDB Compass。

  6. 单击 Yes(是)可自动填写连接设置。

    显示自动填写连接对话框的图像

要解决此错误,另一种方法是允许 Compass 连接集群从节点。在连接设置中将 Read Preference 改为 Primary PreferredSecondary Preferred。这样您就可以绕过此错误并进行连接。

注意

连接到从节点集群成员时,您无法创建或修改文档、索引或数据库。 仅当 不需要执行任何写入操作时才使用此解决方案。

提示

另请参阅:

有关读取偏好的更多信息,请参阅 MongoDB 手册中的读取偏好

在尝试使用 Compass 连接集群时,您可能会收到 Authentication Failed(身份验证失败)的错误消息。

此错误消息通常由如下五个条件导致:

  • 从复制的连接字符串自动填充连接详细信息后,您的 Password(密码)丢失。为安全起见,Compass 要求您在连接对话框中手动输入密码。

  • 您的 Username(用户名)和/或 Password(密码)不正确。

  • 您尚未为 Atlas 集群配置任何 MongoDB 用户

  • 您没有选择正确的Authentication方法。

  • 您没有指定正确的Authentication Database 。此设置对应于authSource连接字符串选项。

    注意

    对于 Atlas 群集,Authentication Database 通常是 admin

  • 确保您提供了正确的UsernamePassword

  • 确保您要进行身份验证的 MongoDB 用户存在。

  • 验证您的Authentication Database和身份验证机制。

  • 验证 MongoDB 数据库是否支持所选的身份验证机制。

Compass 日志可以提供有关连接错误的其他信息。您可能会找到更详细的错误消息来帮助诊断问题。有关详细信息,请参阅检索 Compass 日志。

← 检索 Compass 日志