
# 通过Mongo Shell连接单节点实例（内网连接）
#### 操作场景
Mongo Shell是MongoDB自带的Shell客户端，您可以使用Mongo Shell连接数据库实例、对数据库进行数据查询和更新、执行管理等操作。DDS兼容MongoDB协议，Mongo Shell是MongoDB客户端的一部分，您需要先下载和安装MongoDB客户端，再使用Mongo Shell连接数据库实例。
DDS实例默认提供内网IP地址，当应用部署在弹性云服务器上，且该弹性云服务器与文档数据库实例处于同一区域，同一VPC时，可以使用内网连接文档数据库实例，该方式可以获得更快的传输速率和更高的安全性。
本章节以部署在Linux系统弹性云服务器上的应用场景为例，介绍如何使用Mongo Shell通过内网的方式连接单节点实例。
连接单节点实例的方式有SSL连接和非SSL连接两种方法，其中SSL连接通过了加密功能，具有更高的安全性。为了提升数据在网络传输过程中的安全性，建议采用SSL方式。
#### 前提条件
1. 创建并登录弹性云服务器，请参见[购买弹性云服务器](https://support.huaweicloud.com/usermanual-ecs/ecs_03_7002.html)和[登录弹性云服务器](https://support.huaweicloud.com/ecs_faq/ecs_faq_0632.html)。
2. 在弹性云服务器上，安装MongoDB客户端。 安装MongoDB客户端，请参见[如何安装MongoDB客户端](https://support.huaweicloud.com/dds_faq/dds_faq_0018.html)。
   
3. 已确保弹性云服务器和DDS实例实现网络互通，详情请参见[设置安全组规则](https://support.huaweicloud.com/usermanual-dds/dds_03_0349.html)。
 
#### 操作步骤
- [SSL方式]
  ![](https://support.huaweicloud.com/usermanual-dds/public_sys-resources/notice_3.0-zh-cn.png)
  使用SSL方式连接，请务必开启SSL连接，否则会报错。关于如何开启SSL连接，请参见[开启和关闭SSL连接](https://support.huaweicloud.com/usermanual-dds/dds_03_0074.html)。
  1. [登录管理控制台](https://console.huaweicloud.com)。
  
  2. 单击管理控制台左上方的![](https://support.huaweicloud.com/usermanual-dds/zh-cn_image_0000002050325584.png)，选择区域和项目。
  
  3. 在页面左上角单击![](https://support.huaweicloud.com/usermanual-dds/zh-cn_image_0000002086404713.png)，选择"数据库 \> 文档数据库服务 DDS"，进入文档数据库服务信息页面。
  
  4. 在"实例管理"页面，单击实例名称。
  
  5. 在左侧导航树，单击"连接管理"。
  
  6. 在"基本信息"区域的"SSL"处，单击![](https://support.huaweicloud.com/usermanual-dds/zh-cn_image_0000002086326121.png)，下载根证书。
  
  7. 将根证书导入弹性云服务器的Windows/Linux操作系统，请参见[将根证书导入Windows/Linux操作系统](https://support.huaweicloud.com/dds_faq/dds_faq_0066.html)。
  
  8. 连接数据库实例。 
     **通过内网IP地址连接实例**：
     命令格式：
     **./mongo --host** \<*DB_HOST* \>**--port** \<*DB_PORT* \> **-u** \<*DB_USER* \> **-p** **--authenticationDatabase** **admin** **--ssl --sslCAFile** \<*FILE_PATH* \> **--sslAllowInvalidHostnames**
     相关参数说明如下：
     表1参数说明 
     | 参数名称                       | 说明                                                                                                                                                                                                                                                         |
     |:---|:---|
     | DB_HOST                    | 待连接的数据库实例的内网IP地址。 在实例管理页面，单击目标实例，进入基本信息页面。在"连接管理 \> 内网连接"页签下获取对应节点的IP地址。 图1获取IP地址 ![](https://support.huaweicloud.com/usermanual-dds/zh-cn_image_0000002581282592.png "点击放大")           |
     | DB_PORT                    | 数据库端口，默认端口号为8635。 您可以单击实例名称，进入基本信息页面。在左侧导航树中单击连接管理，在内网连接页签，在"基本信息 \> 数据库端口"处获取实际端口号。 图2获取端口号 ![](https://support.huaweicloud.com/usermanual-dds/zh-cn_image_0000002611842549.png "点击放大")  |
     | DB_USER                    | 数据库账号名，默认为rwuser。                                                                                                                                                                                                                                          |
     | FILE_PATH                  | 存放根证书的路径。                                                                                                                                                                                                                                                  |
     | --sslAllowInvalidHostnames | 为了保证单节点内部通讯不占用用户IP地址和带宽等资源，单节点证书使用内部管理IP地址生成。通过内网SSL连接单节点实例时，需要添加"**--sslAllowInvalidHostnames**"。                                                                                                                                                         |
        
     连接命令示例：
     **./mongo --host** *192.168.xx.xx* **--port 8635 -u rwuser -p --authenticationDatabase admin --ssl --sslCAFile /tmp/ca.crt** **--sslAllowInvalidHostnames**
     出现如下提示时，输入数据库账号对应的密码：
     ```
     Enter password:
     ```
     
     
  
  9. 检查连接结果。出现如下信息，说明连接成功。 
     ```
     replica:PRIMARY>
     ```
     
     
   
- [非SSL方式]
  ![](https://support.huaweicloud.com/usermanual-dds/public_sys-resources/notice_3.0-zh-cn.png)
  使用非SSL方式连接，请务必关闭SSL连接，否则会出现报错。如何关闭SSL连接，请参见[开启和关闭SSL连接](https://support.huaweicloud.com/usermanual-dds/dds_03_0074.html)。
  1. 登录弹性云服务器。
  
  2. 连接文档数据库实例。 
     **通过内网IP地址连接实例：**
     命令格式：
     **./mongo --host** \<*DB_HOST* \>**--port** \<*DB_PORT* \>**-u** \<*DB_USER* \>**-p** **--authenticationDatabase** **admin**
     相关参数说明如下：
     表2参数说明 
     | 参数名称    | 说明                                                                                                                                                                                                                                                            |
     |:---|:---|
     | DB_HOST | 待连接的数据库实例的内网IP地址。 在实例管理页面，单击目标实例，进入基本信息页面。在"连接管理 \> 内网连接"页签下获取对应节点的IP地址。 图3获取IP地址 ![](https://support.huaweicloud.com/usermanual-dds/zh-cn_image_0000002581283544.png "点击放大")                |
     | DB_PORT | 数据库端口，默认端口号为8635。 您可以单击实例名称，进入基本信息页面。在左侧导航树中单击连接管理，在内网连接页签，在"基本信息 \> 数据库端口"处获取实际端口号。 图4获取端口号 ![](https://support.huaweicloud.com/usermanual-dds/zh-cn_image_0000002581443480.png "点击放大")  |
     | DB_USER | 数据库账号名，默认为rwuser。                                                                                                                                                                                                                                             |
        
     连接命令示例：
     **./mongo --host** *192.168.xx.xx* **--port 8635 -u rwuser -p --authenticationDatabase admin**
     出现如下提示时，输入数据库账号对应的密码：
     ```
     Enter password:
     ```
     
     
  
  3. 检查连接结果。出现如下信息，说明连接成功。 
     ```
     replica:PRIMARY>
     ```
     
     
   
#### 相关文档
[DDS实例连接失败的排查思路](https://support.huaweicloud.com/dds_faq/dds_faq_0218.html)
