跳到主要内容

创建 MongoDB 数据源

NineData 支持将不同类型、不同环境的数据源添加到控制台中进行统一管理,您可以对已经添加后的数据源使用数据库 DevOps、备份与恢复、数据复制、数据库对比等功能。本文介绍如何将 MongoDB 数据源添加到 NineData。

前提条件

  • 已将 NineData 的服务器 IP 地址添加到数据源白名单。服务器 IP 地址的获取方式请参见下图。

    server_ip_address

  • 具备空闲的数据源额度,否则无法录入数据源。您可以在 NineData 控制台页面右上方快速查看剩余配额。check_quota

操作步骤

  1. 登录 NineData 控制台

  2. 在左侧导航栏,单击>

  3. 单击页签,并单击页面上的,在弹出的数据源类型弹窗中,选择 > (需要添加的数据源类型),在页面根据下表配置参数。
    提示

    如果您操作失误,可以单击页面上方的arrow_down图标重新选择。

  1. 配置数据源的各项参数:

    参数
    说明
    输入数据源的名称,为了方便后续查找和管理,请尽量使用有意义的名称。
    选择您 MongoDB 数据源的部署架构,支持如下三种架构:
    • :填写单机版 MongoDB 数据库的连接地址和端口号。
    • :填写主节点和副本节点的连接地址和端口号,单击可以增加多个连接地址输入框。
    • :填写 mongos 节点的连接地址和端口号,为保证连接的稳定性,建议填写所有的 mongos 节点,单击可以增加多个连接地址输入框。
    选择数据源的接入方式。支持通过SSH Tunnel 三种方式接入。
    • :通过公网地址接入数据源。
    • :NineData 提供的安全快捷的内网访问方式,需先将数据源所在主机接入,接入方式请参见添加网关
    • SSH Tunnel:通过 SSH 隧道接入数据源。
    选择的配置项:数据源的公网连接地址和端口。
    选择的配置项
    • :选择数据源所在主机中安装的 NineData 网关。
    • :可以写成 localhost(数据源在本机)或者数据源所在主机的内网 IP。
    选择 SSH Tunnel 的配置项
    • :输入目标数据源所在服务器的公网 IP 或者域名,以及对应的端口号(SSH 服务的默认端口号为 22)。
    • :选择 SSH 的认证方式。
      • :通过 (即服务器的登录名)和(即服务器的登录密码)进行连接。
        • :输入目标数据源所在服务器的登录用户名。
        • :输入目标数据源所在服务器的登录密码。
      • (推荐):通过 进行连接。
        • :输入目标数据源所在服务器的登录用户名。
        • :单击上传私钥文件,即无后缀名的密钥文件。如果您还未创建,请参见生成 SSH Tunnel 密钥文件
        • :输入生成密钥文件时设置的密码。如果您在密钥生成过程中未设置密码,此处请留空。
    • 说明:SSH 配置完成后,您需要单击右侧的,可能出现如下两种结果:
      • 提示:表示 SSH Tunnel 已打通。
      • 提示错误信息:表示连接失败,您需要根据提错误示排查故障原因并重试。
    • :可以写成 localhost(数据源在本机)或者数据源所在主机的内网 IP。
    选择 MongoDB 的部署架构类型。
    • :单机部署架构,仅需填写一个链接地址和端口。
    • :副本集部署架构,通常包含一个主节点和多个从节点。您可以在下方单击按钮,输入多个节点地址和端口。
    • :分片集群部署架构,由一个或多个分片节点(mongos)组成。您可以在下方单击按钮,输入多个分片节点(mongos)地址和端口。
    Read Preference时可选,配置将读流量分配到哪个节点。
    • Default:默认配置,读流量将被分配到 Primary 节点。
    • Primary:将读流量分配到 Primary 节点。
    • Primary Preferred:Primary 节点可用时,将将读流量分配到 Primary 节点,否则分配到其他可用节点。
    • Secondary:将读流量分配到 Secondary 节点。
    • Secondary Preferred:Secondary 节点可用时,将将读流量分配到 Secondary 节点,否则分配到其他可用节点。
    • Nearest:自动判断当前最佳节点,将读流量分配到该节点。
    您账号所属的认证数据库名称,默认为 admin
    数据源的用户名。
    数据源的密码。
    选择离您数据源所在地最近的地域,可有效降低网络延迟。
    根据该数据源的实际业务用途进行选择,作为数据源的环境标识。默认提供环境,同时支持您创建自定义环境
    说明:在组织模式下,数据库环境还可应用于权限策略管理,例如,默认情况下的角色仅支持访问环境下的数据源,无法访问其他环境的数据源。更多信息,请参见管理角色
    是否使用 SSL 加密方式访问数据源。数据源如果强制 SSL 加密连接,则必须开启本开关,否则连接失败。SSL 的配置方法请参见官方文档:配置 MongoDB 加密连接
  2. 全部配置完成后,单击右侧的可以测试该数据源是否可以正常访问,提示即可单击,完成数据源的添加。否则请重新检查连接设置,直到连接测试成功为止。

附录:将 NineData 的 IP 地址加入 MongoDB 数据库白名单

添加位于的数据源时,需要将 NineData 服务的 IP 地址添加到 MongoDB 数据库白名单,以允许 NineData 提供服务。

本章节以 MongoDB 5.0 版本为例,介绍如何添加 IP 白名单。

  1. 使用有 root 权限的用户连接 MongoDB,根据实际需求新建或更新账号供 NineData 访问。

    • 新建账号:通过如下命令创建一个供 NineData 访问的账号,并授权该账号对应角色权限。

      db.createUser{
      user: "<账号名称>",
      pwd: "<密码>",
      roles: [
      { role: "<角色名称>", db: "<库名>" },
      ],
      authenticationRestrictions: [
      {
      clientSource: ["<NineData 服务 IP 地址>"],
      serverAddress: ["<MongoDB 服务端 IP 地址>"]
      },
      ...
      ]
      }
    • 已有账号:通过如下命令为已有账号添加 NineData IP 白名单并授予对应角色权限。

      db.updateUser(
      "<账号名称>",
      {
      roles : [
      { role: "<角色名称>", db: "<库名>" },
      ...
      ],
      pwd: "<密码>",
      authenticationRestrictions: [
      {
      clientSource: ["<NineData 服务 IP 地址>"],
      serverAddress: ["<MongoDB 服务端 IP 地址>"]
      },
      ...
      ]
      )
  2. 使用上述账号通过 NineData 控制台添加 MongoDB 数据源。