
# 通过gsql连接实例
本章介绍在管理控制台购买GaussDB实例后，如何使用gsql客户端连接GaussDB实例。
- [步骤一：购买ECS]
- [步骤二：查询需要连接实例的IP地址和端口号]
- [步骤三：测试连通性]
- [步骤四：获取驱动包]
- [步骤五：连接数据库]
  - [非SSL连接]
  
  - [SSL连接]
   
 #### 购买ECS
GaussDB提供gsql工具帮助用户在命令行下连接数据库，用户需要提前创建一台弹性云服务器用于安装gsql工具。
1. [登录ECS控制台](https://console.huaweicloud.com/ecm/?#/ecs/manager/vmList)，查看是否有弹性云服务器。
   - 有弹性云服务器，执行[3]。
   
   - 无弹性云服务器，执行[2]。
   
   
   图1ECS实例   
   ![](https://support.huaweicloud.com/usermanual-gaussdb/figure/zh-cn_image_0000002649774420.png "点击放大")
   
   
2. 购买弹性云服务器时，选择Euler操作系统。
   购买Linux弹性云服务器请参考《弹性云服务器快速入门》中"[购买弹性云服务器](https://support.huaweicloud.com/usermanual-ecs/ecs_03_7002.html)"章节。
   
   ![](https://support.huaweicloud.com/usermanual-gaussdb/public_sys-resources/note_3.0-zh-cn.png)
   gsql支持的操作系统版本如下：
   - X86：EulerOS V2.0SP5，Kylin V10 SP2 。
   
   - 鲲鹏服务器：EulerOS V2.0SP8，Kylin V10 SP1 。
   
   
   本章节以选择Euler操作系统为例。
   
3. 在ECS实例基本信息页，查看ECS实例的区域和VPC。
   图2ECS基本信息   
   ![](https://support.huaweicloud.com/usermanual-gaussdb/figure/zh-cn_image_0000002679854153.png)
   
   
4. 在GaussDB实例基本信息页，查看GaussDB实例的区域和VPC。
   图3GaussDB基本信息   
   ![](https://support.huaweicloud.com/usermanual-gaussdb/figure/zh-cn_image_0000002679854151.png)
   
   
5. 确认ECS实例与GaussDB实例是否处于同一区域、同一VPC。
   - ECS与GaussDB实例在同一区域、同一VPC，则通过内网连接实例，内网地址如何获取，请参考[查询需要连接实例的IP地址]。
   
   - ECS与GaussDB实例不在同一VPC，则通过公网连接实例，公网地址如何获取，请参考[查询需要连接实例的IP地址]。请确保ECS和GaussDB实例都要有弹性IP。
     - ECS如何绑定弹性公网IP，请参考[绑定弹性公网IP](https://support.huaweicloud.com/usermanual-ecs/zh-cn_topic_0174917535.html)。
     
     - GaussDB实例如何绑定弹性公网IP，请参考[绑定弹性公网IP](https://support.huaweicloud.com/usermanual-gaussdb/gaussdb_01_160.html)。
      
    
 
 #### 查询需要连接实例的IP地址和端口号
1. [登录云数据库GaussDB控制台](https://console.huaweicloud.com/gaussdb/?locale=zh-cn#/gaussdb/management/list)。
2. 在"实例管理"页面，选择指定的实例，单击实例名称，进入实例基本信息页面。
3. 分别在"节点列表"和"网络信息"模块处，查看IP地址和端口号。 若为集中式版实例，请获取主DN的IP地址，若为分布式版实例，请获取任意CN节点的IP地址。
   - ECS实例与GaussDB实例在同一VPC，请获取节点列表模块的内网地址。
   
   - ECS实例与GaussDB实例不在同一VPC，请获取节点列表模块的弹性公网IP。
    
 
 #### 测试连通性
1. 登录ECS实例，请参见《弹性云服务器用户指南》中"[Linux弹性云服务器远程登录（VNC方式）](https://support.huaweicloud.com/usermanual-ecs/ecs_03_0136.html)"。
2. 在ECS上测试是否可以正常连接到GaussDB实例地址的端口，连接地址和端口通过[查询需要连接实例的IP地址和端口号]获取。
   **telnet** *IP地址* *端口*
   示例：
   **telnet** 192.168.0.16 8000
   ![](https://support.huaweicloud.com/usermanual-gaussdb/public_sys-resources/note_3.0-zh-cn.png)
   如果提示command not found，请根据ECS使用的操作系统不同，自行安装telnet工具。
   - 如果可以通信，说明网络正常。 ![](https://support.huaweicloud.com/usermanual-gaussdb/figure/zh-cn_image_0000002649934314.png)
     
   
   - 如果无法通信，请检查安全组规则。 ![](https://support.huaweicloud.com/usermanual-gaussdb/figure/zh-cn_image_0000002679854155.png "点击放大")
     - 查看ECS的安全组的出方向规则，需要将GaussDB实例的IP地址和端口添加到出方向规则。
       - ECS实例与GaussDB实例在同一VPC，将GaussDB实例的内网IP地址和端口添加到出方向规则。
       
       - ECS实例与GaussDB实例不在同一VPC，将GaussDB实例的公网IP地址和端口添加到出方向规则。
       
       
       图4ECS的安全组   
       ![](https://support.huaweicloud.com/usermanual-gaussdb/figure/zh-cn_image_0000002649774416.png "点击放大")
       
       
     
     
     
     - 查看GaussDB的安全组的入方向规则，需要将ECS实例IP地址和端口添加到入方向规则。
       - ECS实例与GaussDB实例在同一VPC，需要将ECS实例的私有IP地址和端口添加到入方向规则。
       
       - ECS实例与GaussDB实例不在同一VPC，将ECS实例的弹性公网IP地址和端口添加到入方向规则。
       
       
       具体操作请参见[设置安全组规则](https://support.huaweicloud.com/usermanual-gaussdb/gaussdb_01_171.html)。
       图5GaussDB的安全组   
       ![](https://support.huaweicloud.com/usermanual-gaussdb/figure/zh-cn_image_0000002680013987.png "点击放大")
       
       
      
     
 
 #### 获取驱动包
表1驱动包下载地址 
| 驱动包下载地址                                                                                                                                                | 校验包下载地址                                                                                                                                                          |
|:---|:---|
| [驱动包](https://dbs-download.obs.cn-north-1.myhuaweicloud.com/DBS-GaussDB-driver/1782715650051/DBS-GaussDB-driver_507.0_20260629130806.133858239.tar.gz) | [驱动包校验包](https://dbs-download.obs.cn-north-1.myhuaweicloud.com/DBS-GaussDB-driver/1782715650051/DBS-GaussDB-driver_507.0_20260629130806.133858239.tar.gz.sha256) |
   
为了防止软件包在传递过程或存储期间被恶意篡改，下载软件包时需下载对应的校验包对软件包进行校验，校验方法如下：
1. 上传软件包和软件包校验包到虚拟机（Linux操作系统）的同一目录下。
2. 执行如下命令，校验软件包完整性。
   ```
   F=$(echo DBS-GaussDB-driver*.tar.gz);echo "$(awk '{print $1}' "$F.sha256")  $F" | sha256sum -c -
   ```
   如果回显OK，则校验通过。例如：
   ```
   DBS-GaussDB-driver_507.0_20260629130806.133858239.tar.gz: OK
   ```
   
 #### 连接数据库
GaussDB支持非SSL连接和SSL连接两种方式，您可以根据自身需求选择合适的连接方式。
- [非SSL连接]
  
  1. 以root用户登录申请的弹性云服务器。
  
  2. 上传客户端工具包并配置gsql的执行环境变量。
     1. 执行以下命令创建"/tmp/tools"目录，用以存放客户端工具包。
        ```
        mkdir /tmp/tools
        ```
        
     
     2. 参考[获取驱动包]，下载对应版本驱动包，并将其上传到申请的弹性云服务器"/tmp/tools"路径下。
     
     3. 执行以下命令解压驱动包。驱动包名请根据实际下载的包名进行替换，此处以DBS-GaussDB-driver_507.0_20260629130806.133858239.tar.gz为例。
        ```
        cd /tmp/tools
        tar -zxvf DBS-GaussDB-driver_507.0_20260629130806.133858239.tar.gz
        ```
        
     
     4. 执行以下命令获取gsql客户端工具包。
        ```
        cd /tmp/tools/DBS-GaussDB-driver_507.0_20260629130806.133858239/Distributed/
        tar -zxvf gsql_driver.tar.gz
        cd /tmp/tools/DBS-GaussDB-driver_507.0_20260629130806.133858239/Distributed/gsql_driver/Euler2.5_X86_64
        tar -zxvf GaussDB-Kernel_507.0.0.B071_Gsql_X86_Distributed.tar.gz
        ```
        ![](https://support.huaweicloud.com/usermanual-gaussdb/public_sys-resources/note_3.0-zh-cn.png)
        - 客户端工具包相对位置为解压后位置，请根据实际情况填写。此处以Distributed（分布式）路径、Euler2.5_x86_64系统的工具包为例。
        
        - 客户端工具包名请根据实际下载的包名进行替换。此处以GaussDB-Kernel_507.0.0.B071_Gsql_X86_Distributed.tar.gz为例。
          
     
     5. 执行以下命令将解压出来的"GaussDB-Kernel_507.0.0_Euler_64bit_Gsql.tar.gz"客户端工具包拷贝到"/tmp/tools"路径下。
        ```
        cp GaussDB-Kernel_507.0.0_Euler_64bit_Gsql.tar.gz /tmp/tools
        ```
        
     
     6. 执行以下命令解压文件。
        ```
        cd /tmp/tools
        tar -zxvf GaussDB-Kernel_507.0.0_Euler_64bit_Gsql.tar.gz
        ```
        
     
     7. 配置环境变量。 执行以下命令打开"\~/.bashrc"文件。
        ```
        vim ~/.bashrc
        ```
        按"G"将光标移至最后一行，按"i"进入INSERT模式，输入如下内容后，单击"ESC"退出INSERT模式，输入":wq"命令保存并退出。
        ```
        export PATH=/tmp/tools/bin:$PATH
        export LD_LIBRARY_PATH=/tmp/tools/lib:$LD_LIBRARY_PATH
        ```
        执行以下命令使环境变量配置永久生效。
        ```
        source ~/.bashrc
        ```
        
      
  
  3. 执行如下指令，根据提示输入密码，连接数据库。 数据库创建成功后，会默认生成名称为postgres的数据库，此处以postgres库为例。
     ```
     gsql -d postgres -h 10.0.0.0 -U root -p 8000
     Password for user root:
     ```
     postgres为需要连接的数据库名称，10.0.0.0为实例的IP地址，通过[查询需要连接实例的IP地址]获取，root为登录数据库的用户名，8000为数据库的端口号，通过[查询需要连接实例的端口号]获取。
     若显示如下信息，则表示已经连接成功。
     ```
     gaussdb=>
     ```
     有关gsql的命令参考和更多信息，请参见[《工具参考》](https://support.huaweicloud.com/tg-gaussdb-dist/gaussdb-08-0004.html)。
     
   
- [SSL连接]
  
  1. [登录云数据库GaussDB控制台](https://console.huaweicloud.com/gaussdb/?locale=zh-cn#/gaussdb/management/list)。
  
  2. 在"实例管理"页面，单击实例名称进入"基本信息"页面，单击"配置信息"模块"SSL"处的![](https://support.huaweicloud.com/usermanual-gaussdb/figure/zh-cn_image_0000002649773396.png)，下载根证书或捆绑包。
  
  3. 将根证书上传至需连接GaussDB实例的弹性云服务器，或保存到可访问数据库实例的设备。 将根证书导入弹性云服务器Linux操作系统，请参见[将根证书导入Windows/Linux操作系统](https://support.huaweicloud.com/gaussdb_faq/gaussdb_01_437.html)。
     
  
  4. 连接GaussDB实例。
     以Linux系统为例，在弹性云服务器设置环境变量，执行如下命令。
     ```
     export PGSSLMODE=<sslmode>
     export PGSSLROOTCERT=<ca-file-directory>
     ```
     **gsql -h** *\<host\>* **-p** *\<port\>* **-d** *\<database\>* ***-U** \<user\>*
     示例如下：
     ```
     export PGSSLMODE="verify-ca"
     export PGSSLROOTCERT="/home/Ruby/ca.pem"
     ```
     **gsql** **-h *10.0.0.0* -p *8000* -d** *postgres* **-U** *root*
     ```
     Password for user root:
     ```
     表2参数说明 
     | 参数                      | 说明                                                                |
     |:---|:---|
     | *\<host\>*              | 主机IP，在"实例管理"页面单击实例名称，进入"基本信息"页面。在"节点列表"模块的"内网地址"列获取IP信息。          |
     | *\<port\>*              | 数据库的端口号，默认为8000。您可以在"实例管理"页面单击实例名称，进入"基本信息"页面，在"网络信息"模块获取"数据库端口"。 |
     | *\<database\>*          | 需要连接的数据库名，默认数据库是postgres。                                         |
     | *\<user\>*              | 用户名，即GaussDB数据库账号，默认管理员账号为root。                                   |
     | *\<ca-file-directory\>* | SSL连接CA证书路径。                                                      |
     | *\<sslmode\>*           | SSL连接模式，设置为"verify-ca"，通过检查证书链（Certificate Chain）来验证服务是否可信任。      |
        
     有关gsql的命令参考和更多信息，请参见[《工具参考》](https://support.huaweicloud.com/tg-gaussdb-dist/gaussdb-08-0004.html)。
     
  
  5. 登录数据库后，出现如下信息，表示通过SSL连接成功。
     ```
     SSL connection (cipher: DHE-RSA-AES256-GCM-SHA384, bits: 256)
     ```
     
   
#### 常见问题
[GaussDB实例连接失败怎么办](https://support.huaweicloud.com/gaussdb_faq/gaussdb_01_375.html)
