
# IoTDB客户端使用实践
#### 操作场景
该任务指导用户在运维场景或业务场景中使用IoTDB客户端。
#### 前提条件
- 已安装客户端。例如安装目录为"/opt/client"，以下操作的客户端目录只是举例，请根据实际安装目录修改。
- 各组件业务用户由MRS集群管理员根据业务需要创建。安全模式下，"机机"用户需要下载keytab文件。"人机"用户第一次登录时需修改密码。
 
#### 操作步骤
1. 以客户端安装用户，登录安装客户端的节点。
2. 切换到IoTDB客户端安装目录，例如：/opt/client。 
   **cd** **/opt/client**
   
   
3. 执行以下命令配置环境变量。 
   **source bigdata_env**
   
   
4. 首次登录IoTDB客户端前需执行以下步骤生成SSL客户端证书： 
   1. 执行以下命令生成客户端SSL证书： **keytool -noprompt -import -alias myservercert -file ca.crt -keystore truststore.jks**
      执行该命令后需输入一个自定义密码。
      
   
   2. 将生成的"truststore.jks"文件复制到"*客户端安装目录* /IoTDB/iotdb/conf"目录下：
      **cp truststore.jks** *客户端安装目录* **/IoTDB/iotdb/conf**
      
   
   
   
   
5. 根据集群认证模式，完成IoTDB客户端登录。
   
   - 安全模式，执行以下命令，完成用户认证并登录IoTDB客户端。 **kinit** *组件业务用户*。
     
   
   - 普通模式则跳过此步骤。
   
   
   
   
6. 执行以下命令，切换IoTDB客户端运行脚本所在目录。 
   **cd /opt/client/IoTDB/iotdb/sbin**
   
   
7. 集群未启用Kerberos认证（普通模式）需先调用"alter-cli-password.sh"脚本修改默认用户**root** 的默认密码：
   
   **sh alter-cli-password.sh** *IoTDBServer实例节点* *IP* *RPC端口*
   ![](https://support.huaweicloud.com/cmpntguide-lts-mrs/public_sys-resources/note_3.0-zh-cn.png)
   - IoTDBServer实例节点IP地址可在Manager界面，选择"集群 \> 服务 \> IoTDB \> 实例"查看。
   
   - IoTDBServer RPC端口可在参数"IOTDB_SERVER_RPC_PORT"中自行配置。默认端口如下：
     - 开源端口默认值为：6667
     
     - 定制端口默认值为：22260
     
     
     端口定制/开源区分：创建LTS版本类型集群时，可以选择"组件端口"为"开源"或是"定制"，选择"开源"使用开源端口，选择"定制"使用定制端口。
     
   
   - **root**用户初始密码MRS 3.3.0之前版本为"root"，MRS 3.3.0及之后版本为"Iotdb@123"。
   
   - 修改的用户密码字符长度MRS 3.3.0之前版本至少为4位，MRS 3.3.0及之后版本至少为8位，且不能包含空格。
    
   
   
8. 执行以下命令登录客户端 
   **./start-cli.sh** **-h** *IoTDBServer实例节点* *i* *p* -**p** *IoTDBServer RPC端口*
   运行该命令后，根据实际需求指定业务用户名：
   - 指定业务用户名，则输入"yes"，并根据提示输入业务用户名和对应的业务用户密码： ![](https://support.huaweicloud.com/cmpntguide-lts-mrs/zh-cn_image_0000001724747805.png "点击放大")
     
   
   
   
   - 不指定业务用户名，则输入"no"；此时，则使用[5]中的用户执行后续操作：
     ![](https://support.huaweicloud.com/cmpntguide-lts-mrs/zh-cn_image_0000001724867681.png "点击放大")
     
   
   - 输入其他，则退出登录： ![](https://support.huaweicloud.com/cmpntguide-lts-mrs/zh-cn_image_0000001724747809.png "点击放大")
     
   
   
   ![](https://support.huaweicloud.com/cmpntguide-lts-mrs/public_sys-resources/note_3.0-zh-cn.png)
   - 集群未启用Kerberos认证（普通模式）使用**root**用户登录。
   
   - 登录客户端时可以通过**-maxRPC** 参数，控制执行结果一次性打印多少行，默认值是1000；如果将**-maxRPC**参数值设置为小于等于0，则会一次性打印所有结果，通常用于重定向SQL执行结果。
   
   - 登录客户端时，可选**-disableISO8601**参数，用于控制查询结果的时间列展示格式。不指定该参数会显示年月日时分秒格式，指定则显示时间戳。
   
   - 如果服务端关闭了SSL配置，则需在客户端需也关闭SSL配置才能通信，操作为： **cd** *客户端安装目录* **/IoTDB/iotdb/conf**
     **vi iotdb-client.env**
     将"iotdb_ssl_enable"参数的值修改为"false"，保存并退出。
     其中，服务端SSL配置，可登录FusionInsight Manager，选择"集群 \> 服务 \> IoTDB \> 配置"，搜索"SSL_ENABLE"查看，该参数值为"true"表示开启了SSL，为"false"则表示未开启SSL。
     
    
   
   
9. 登录客户端成功即可执行相关SQL操作。
 
