GaussDB-通过gsql连接实例(Linux方式)

GaussDB-通过gsql连接实例(Linux方式)

本章介绍在管理控制台创建GaussDB实例后,如何使用gsql客户端连接GaussDB实例。

创建ECS

GaussDB提供gsql工具帮助用户在命令行下连接数据库,用户需要提前创建一台弹性云服务器用于安装gsql工具。

  1. 登录管理控制台,查看是否有弹性云服务器。
    • 弹性云服务器,执行3
    • 弹性云服务器,执行2
  2. 创建弹性云服务器时,选择Euler操作系统。

    创建弹性云服务器,请参见《弹性云服务器(ECS) 8.3.1 使用指南(for 华为云Stack )》中的“创建弹性云服务器”章节。

  3. 在ECS实例基本信息页,查看ECS实例的区域和VPC。

    NOTICE:

    操作系统需要选择Euler操作系统。gsql支持的操作系统版本如下:

    X86:EulerOS V2.0SP5,Kylin V10 SP2,Huawei Cloud EulerOS 2.0 。

    鲲鹏服务器:EulerOS V2.0SP8,Kylin V10 SP1,Huawei Cloud EulerOS 2.0 。

  4. 在GaussDB实例基本信息页,查看GaussDB实例的区域和VPC。

  5. 确认ECS实例与GaussDB实例是否处于同一区域、同一VPC。
    • ECS与GaussDB实例在同一区域、同一VPC,则通过内网连接实例,内网地址如何获取,请参考查询需要连接实例的IP地址
    • ECS与GaussDB实例不在同一VPC,则通过公网连接实例,公网地址如何获取,请参考查询需要连接实例的IP地址。请确保ECS和GaussDB实例都要有弹性IP。
      • ECS如何绑定弹性公网IP,请参考《弹性云服务器(ECS) 8.3.1 使用指南(for 华为云Stack )》中的“绑定弹性公网IP”章节。
      • GaussDB实例如何绑定弹性公网IP,请参考绑定弹性公网IP

查询需要连接实例的IP地址和端口号

  1. 登录管理控制台。
  2. “实例管理”页面,选择指定的实例,单击实例名称,进入实例基本信息页面。
  3. “连接信息”模块处,查看IP地址和端口号。
    • ECS实例与GaussDB实例在同一VPC,请获取内网地址和数据库端口号。
    • ECS实例与GaussDB实例不在同一VPC,请获取弹性公网IP和数据库端口号。

测试连通性

  1. 登录ECS实例,请参见《弹性云服务器用户指南》中“Linux弹性云服务器远程登录(VNC方式)”。
  2. 在ECS上测试是否可以正常连接到GaussDB实例地址的端口,连接地址和端口通过查询需要连接实例的IP地址和端口号获取。

    telnet IP地址 端口

    示例:

    telnet 192.168.0.16 8000

    如果提示command not found,请根据ECS使用的操作系统不同,自行安装telnet工具。

    • 如果可以通信,说明网络正常。
    • 如果无法通信,请检查安全组规则。
      • 查看ECS的安全组的出方向规则,如果目的地址不为“0.0.0.0/0”且协议端口不为“全部”,需要将GaussDB实例的IP地址和端口添加到出方向规则。
        • ECS实例与GaussDB实例在同一VPC,将GaussDB实例的内网IP地址和端口添加到出方向规则。
        • ECS实例与GaussDB实例不在同一VPC,将GaussDB实例的公网IP地址和端口添加到出方向规则。

         

      • 查看GaussDB的安全组的入方向规则,如果源地址不为“0.0.0.0/0”且协议端口不为“全部”,需要将ECS实例IP地址和端口添加到入方向规则。
        • ECS实例与GaussDB实例在同一VPC,需要将ECS实例的私有IP地址和端口添加到入方向规则。
        • ECS实例与GaussDB实例不在同一VPC,将ECS实例的弹性公网IP地址和端口添加到入方向规则。

        具体操作请参见设置安全组规则

         

获取驱动包

在管理控制台下载对应的软件包。

 

 

连接数据库

  • 非SSL连接
    1. 以root用户登录申请的弹性云服务器。
    2. 上传客户端工具包并配置gsql的执行环境变量。
      1. 执行以下命令创建“/tmp/tools”目录,用以存放客户端工具包。
        mkdir /tmp/tools
         
      2. 参考获取驱动包,下载对应版本驱动包,并将其上传到申请的弹性云服务器“/tmp/tools”路径下。
      3. 执行以下命令解压驱动包。
        cd /tmp/tools
        tar -zxvf gsql_driver.tar.gz
         
      4. 执行以下命令将解压出来的“GaussDB-Kernel_V***R***C**_EULER_64bit-Gsql.tar.gz”客户端工具包拷贝到“/tmp/tools”路径下。

        客户端工具包相对位置为解压后位置,请根据实际情况填写。此处以主备版实例Euler2.5_x86_64系统的gsql工具包为例。

        cd /tmp/tools/GaussDB_driver/Centralized/Euler2.5_X86_64/
        cp GaussDB-Kernel_V***R***C**_EULER_64bit-Gsql.tar.g /tmp/tools
         
      5. 执行以下命令解压文件。
        cd /tmp/tools
        tar -zxvf GaussDB-Kernel_V***R***C**_EULER_64bit-Gsql.tar.g
         
      6. 配置环境变量。

        执行以下命令打开“~/.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为数据库的端口号,通过查询需要连接实例的端口号获取。

      如果实例子网选择的为IPv6子网,则连接数据库时也可使用IPv6地址进行连接。

  • SSL连接
    1. 登录管理控制台。
    2. “实例管理”页面,单击实例名称进入“基本信息”页面,单击“数据库信息”模块“SSL”处的,下载根证书或捆绑包。

      如果需要打开实例的SSL连接功能,首先需要在本地计算机上进行如下的hosts配置:

      {obs_float_ip}dbs-cert-download-new-{region_id}.{obs_prefix}.{region_id}.{external_global_domain_name}
       
      • region_id:当前Region的region_id,在底座LLD中查询参数'region0_id'获取。
      • obs_prefix: OBS服务域名前缀,OBS 3.0为'obsv3',OBS 2.0为'obs',在OBS安装工程LLD查询参数'obs_global_domain_name_prefix'。
      • external_global_domain_name:当前Region的外部服务域名,在底座LLD查询参数'external_global_domain_name'。
      • obs_float_ip:当前Region的OBS服务的外部访问地址,在OBS安装工程LLD查询参数名'global_obs_ip'。

      示例:

      127.0.0.1 dbs-cert-download-new--sa-fb-1.obsv3.sa-fb-1.demo.com
       
    3. 将根证书上传至需连接GaussDB实例的弹性云服务器,或保存到可访问数据库实例的设备。

      将根证书导入弹性云服务器Linux操作系统。

    4. 连接GaussDB实例。
      以Linux系统为例,在弹性云服务器设置环境变量,执行如下命令。
      export PGSSLMODE=<sslmode>
      export PGSSLROOTCERT=<ca-file-directory>
       

      gsql -h <host> -p <port> -d <database> -U <user>

      表1 参数说明

      参数

      说明

      <host>

      主机IP,在“实例管理”页面单击实例名称,进入“基本信息”页面。“连接信息”模块的“内网地址”(通过弹性云服务器访问)。

      <port>

      端口,默认8000,当前端口,即在“实例管理”页面单击实例名称,进入“基本信息”页面,“连接信息”模块的“数据库端口”。

      <database>

      需要连接的数据库名,默认管理数据库是postgres。

      <user>

      用户名,即GaussDB数据库账号,默认管理员账号为root。

      <ca-file-directory>

      SSL连接CA证书路径。

      <sslmode>

      SSL连接模式,设置为“verify-ca”,通过检查证书链(Certificate Chain,以下简称CA)来验证服务是否可信任。

      弹性云服务器设置环境变量,使用root用户SSL连接postgres数据库实例,具体示例如下:

      export PGSSLMODE="verify-ca"
      export PGSSLROOTCERT="/home/Ruby/ca.pem"
       

      gsql -d postgres -h 10.0.0.0 -U root -p 8000

      Password for user root:
       
    5. 登录数据库后,出现如下信息,表示通过SSL连接成功。
      SSL connection (cipher: DHE-RSA-AES256-GCM-SHA384, bits: 256)
       
 
posted @ 2024-09-18 17:39  jerrywang1983  阅读(376)  评论(0)    收藏  举报