
# 通过MongoDB客户端连接副本集实例
不能通过内网方式访问数据库实例时，可以使用公网访问，通过弹性公网IP或公网网关地址连接数据库实例。
本章节介绍使用MongoDB客户端，通过公网方式连接副本集实例的过程。
操作系统使用场景：弹性云服务器以Linux系统为例。
连接副本集实例的方式有SSL连接和非SSL连接两种方法，其中SSL连接通过了加密功能，具有更高的安全性。为了提升数据在网络传输过程中的安全性，建议采用SSL方式。
#### 前提条件
1. 副本集实例需要绑定弹性公网IP或公网网关地址并设置安全组规则，请分别参见[10.4.8.2-绑定弹性公网IP](https://support.huaweicloud.com/mongoug-nosql/nosql_05_0038.html)或[10.4.8.3-绑定公网网关地址](https://support.huaweicloud.com/mongoug-nosql/zh-cn_topic_0000002541471247.html)和[设置安全组规则](https://support.huaweicloud.com/mongoug-nosql/nosql_05_0037.html)，确保可以通过弹性云服务器访问。
2. 安装MongoDB客户端。
   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/mongoug-nosql/mongo_faq_0023.html)。
      
    
 
#### SSL连接
![](https://support.huaweicloud.com/mongoug-nosql/public_sys-resources/notice_3.0-zh-cn.png)
使用SSL方式连接，请务必开启SSL连接，否则会报错。关于如何开启SSL连接，请参见[设置SSL数据加密](https://support.huaweicloud.com/mongoug-nosql/nosql_03_0203.html)。
1. 登录管理控制台。
2. 在服务列表中选择"数据库 \> 云数据库 GeminiDB Mongo接口。
3. 在"实例管理"页面，单击实例名称。
4. 在左侧导航树，单击"连接管理"。
5. 在"基本信息"区域的"SSL"处，单击![](https://support.huaweicloud.com/mongoug-nosql/zh-cn_image_0000002090518669.png)，下载根证书。
6. 上传根证书至需要连接实例的弹性云服务器云主机。 
   根据客户端使用的计算机系统类型，选择相应的上传方法。
   - Linux操作系统下，可参考如下命令：
     **scp** *\<IDENTITY_FILE\>* *\<REMOTE_USER\>* **@** *\<REMOTE_ADDRESS\>* **:** *\<REMOTE_DIR\>*
     ![](https://support.huaweicloud.com/mongoug-nosql/public_sys-resources/note_3.0-zh-cn.png)
     - IDENTITY_FILE为存储根证书的文件目录，该文件目录权限为600。
     
     - REMOTE_USER为的操作系统用户。
     
     - REMOTE_ADDRESS为的主机地址。
     
     - REMOTE_DIR为将根证书上传到的文件目录。
       
   
   - Windows操作系统下，请使用远程连接工具上传根证书。
   
   
   
   
7. 在客户端工具mongo所在的目录下，连接数据库实例。 
   命令格式：
   **./mongo --host** \<*DB_HOST* \> **--port** \<*DB_PORT* \> **-u** \<*DB_USER* \> **-p** **--authenticationDatabase** **admin** **--ssl --sslCAFile** \<*FILE_PATH* \> **--sslAllowInvalidHostnames**
   出现如下提示时，输入数据库账号对应的密码：
   ```
   Enter password:
   ```
   表1参数说明 
   | **参数**          | **说明**                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
   |:---|:---|
   | \<*DB_HOST*\>   | 待连接实例节点对应绑定的弹性公网IP。 主节点：即Primary节点，连接该节点后可执行数据的读写操作。 备节点：即Secondary节点，连接该节点后仅可执行数据的读操作。 您可以在实例管理页面，单击目标实例名称，进入基本信息页面。在"节点信息"列表的"公网网关"列获取当前节点的弹性公网IP。 图1查看弹性公网IP ![](https://support.huaweicloud.com/mongoug-nosql/zh-cn_image_0000002573011446.png) 或者您也可以单击实例名称，进入基本信息页面，单击左侧导航栏中的"连接管理"，在连接管理页面获取对应节点的弹性公网IP。 图2获取节点公网IP ![](https://support.huaweicloud.com/mongoug-nosql/zh-cn_image_0000002573171088.png)  |
   | \<*DB_PORT*\>   | 数据库端口。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
   | \<*DB_USER*\>   | 数据库账号，默认为rwuser。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
   | \<*FILE_PATH*\> | 存放根证书的路径。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
      
   示例：
   **./mongo --host 192.168.1.6 --port 8635 -u rwuser -p --authenticationDatabase admin --ssl --sslCAFile /tmp/ca.crt** **--sslAllowInvalidHostnames**
   
   
8. 检查连接结果。出现如下信息，说明连接成功。 
   - 针对副本集主节点的连接结果：
     ```
     replica:PRIMARY>
     ```
     
   
   - 针对副本集备节点的连接结果：
     ```
     replica:SECONDARY>
     ```
     
   
   
   
   
 
#### 非SSL连接
![](https://support.huaweicloud.com/mongoug-nosql/public_sys-resources/notice_3.0-zh-cn.png)
使用非SSL方式连接，请务必关闭SSL连接，否则会报错。关于如何关闭SSL连接，请参见[设置SSL数据加密](https://support.huaweicloud.com/mongoug-nosql/nosql_03_0203.html)。
1. 连接弹性云服务器。
2. 连接GeminiDB Mongo实例。 
   命令格式：
   **./mongo --host** \<*DB_HOST* \>**--port** \<*DB_PORT* \> **-u** \<*DB_USER* \>**-p** **--authenticationDatabase** **admin**
   表2参数说明 
   | **参数**        | **说明**                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
   |:---|:---|
   | \<*DB_HOST*\> | 待连接实例主节点或备节点的弹性公网IP。 - 主节点：即Primary节点，连接该节点后可执行数据的读写操作。  - 备节点：即Secondary节点，连接该节点后仅可执行数据的读操作。   您可以在实例管理页面，单击目标实例名称，进入基本信息页面。在"节点信息"列表的"公网网关"列获取当前节点的弹性公网IP。 图3查看弹性公网IP ![](https://support.huaweicloud.com/mongoug-nosql/zh-cn_image_0000002603730571.png) 或者您也可以单击实例名称，进入基本信息页面，单击左侧导航栏中的"连接管理"，在连接管理页面获取对应节点的弹性公网IP。 图4获取节点公网IP ![](https://support.huaweicloud.com/mongoug-nosql/zh-cn_image_0000002603690515.png) |
   | \<*DB_PORT*\> | 数据库端口。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
   | \<*DB_USER*\> | 数据库账号，默认为rwuser。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
      
   出现如下提示时，输入数据库账号对应的密码：
   ```
   Enter password:
   ```
   示例如下：
   **./mongo --host 192.168.1.6 --port 8635 -u rwuser -p --authenticationDatabase admin**
   
   
3. 出现如下信息，说明连接成功。 
   - 针对副本集主节点的连接结果：
     ```
     replica:PRIMARY>
     ```
     
   
   - 针对副本集备节点的连接结果：
     ```
     replica:SECONDARY>
     ```
     
   
   
   
   
 
