
# 使用gsql连接
gsql是GaussDB提供的在命令行下运行的数据库连接工具。此工具除了具备操作数据库的基本功能，还提供了若干高级特性，便于用户使用。本节只介绍如何使用gsql连接数据库，关于gsql使用方法的更多信息请参考《工具参考》中"客户端工具 \> gsql"章节。
#### 注意事项
缺省情况下，客户端连接数据库后处于空闲状态时会根据参数session_timeout的默认值自动断开连接。如果要关闭超时设置，设置参数session_timeout为0即可。
#### 前提条件
已联系管理员获取连接信息。
#### 远程连接数据库
1. 完成远程连接配置，请联系管理员处理。
2. 在客户端机器上，上传客户端工具包并配置gsql的执行环境变量。此处以openEuler环境为例。 
   1. 以登录客户端机器。
   
   2. 创建"/tmp/tools"目录。
      ```
      mkdir /tmp/tools
      ```
      
   
   3. 获取软件安装包中的"GaussDB-Kernel_VxxxRxxxCxx-XXXXX-64bit-gsql.tar.gz"上传到"/tmp/tools"路径下。
      ![](https://support.huaweicloud.com/centralized-devg-v2-gaussdb/public_sys-resources/note_3.0-zh-cn.png)
      - 软件包相对位置为安装时所放位置，根据实际情况填写。
      
      - 不同的操作系统，工具包文件名称会有差异。请根据实际的操作系统类型选择对应的工具包。
        
   
   4. 解压文件。
      ```
      cd /tmp/tools
      tar -zxvf GaussDB-Kernel_VxxxRxxxCxx-XXXXX-64bit-gsql.tar.gz
      ```
      
   
   5. 登录数据库主节点所在的服务器，拷贝数据库安装目录下的bin目录到客户端主机的"/tmp/tools"路径下。
      ```
      scp -r /opt/huawei/install/app/bin root@10.10.0.30:/tmp/tools
      ```
      其中，/opt/huawei/install/app为clusterconfig.xml文件中配置的{gaussdbAppPath}路径，10.10.0.30为客户端主机ip。
      
   
   6. 登录客户端所在主机，设置环境变量。 打开"\~/.bashrc"文件。
      ```
      vi ~/.bashrc
      ```
      在其中输入如下内容后，使用":wq!"命令保存并退出。
      ```
      export PATH=/tmp/tools/bin:$PATH
      export LD_LIBRARY_PATH=/tmp/tools/lib:$LD_LIBRARY_PATH
      ```
      
   
   7. 使环境变量配置生效。
      ```
      source ~/.bashrc
      ```
      
   
   
   
   
3. 连接数据库。 
   数据库安装完成后，默认生成名称为postgres的数据库。第一次连接数据库时可以连接到此数据库。
   ```
   gsql -d postgres -h 10.10.0.11 -U jack -p 8000
   Password for user jack:
   ```
   postgres为需要连接的数据库名称，10.10.0.11为数据库主节点所在的服务器IP地址，jack为连接数据库的用户，8000为数据库主节点的端口号。
   在集中式数据库实例环境中，当需要连接主节点时，比如数据库实例三个节点的IP是10.10.0.11,10.10.0.12,10.10.0.13时，可以使用gsql -d postgres -h 10.10.0.11,10.10.0.12,10.10.0.13 -U jack -p 8000，gsql会按从前往后的顺序依次连接三个IP，如果当前连接的IP地址不是主节点则断开尝试连接下一个IP地址，直到找到主节点为止。
   ![](https://support.huaweicloud.com/centralized-devg-v2-gaussdb/public_sys-resources/note_3.0-zh-cn.png)
   - 连接GaussDB的机器与GaussDB不在同一网段时，-h指定的IP地址应为Manager界面上所设的coo.cooListenIp2（应用访问IP）的取值。
   
   - 默认禁止使用数据库初始化用户进行远程连接数据库，开启实例内部kerberos认证时，允许初始化用户在实例内部进行远程连接。
    
   
   
 
