GaussDB提供客户端和服务器端应用程序(工具),帮助用户更好地维护GaussDB

49 阅读3分钟

GaussDB提供客户端和服务器端应用程序(工具),帮助用户更好地维护GaussDB。

gsql概述

基本功能

  • 连接数据库: 默认只支持从服务器本机连接,如果需要连接到远端的数据库,必须在服务端进行配置。详细操作请参见《开发者指南》中“数据库使用入门 > 连接数据库 > 使用gsql连接 > 远程连接数据库”章节。

    gsql创建连接时,会有5分钟超时时间。如果在这个时间内,数据库未正确地接受连接并对身份进行认证,gsql将超时退出。

    针对此问题,可以参考常见问题处理

  • 执行SQL语句: 支持交互式地键入并执行SQL语句,也可以执行一个文件中指定的SQL语句。

  • 执行元命令: 元命令可以帮助管理员查看数据库对象的信息、查询缓存区信息、格式化SQL输出结果,以及连接到新的数据库等。元命令的详细说明请参见元命令参考

高级特性

gsql的高级特性如表1所示。

特性名称描述
变量gsql提供类似于Linux的shell命令的变量特性,可以使用gsql的元命令\set设置一个变量,格式如下:```
\set varname value
删除由\set命令设置的变量请使用如下方式:
\unset varname
-   变量名称必须由字母(包括非拉丁字母)、数字和下划线组成,且对大小写敏感。
-   如果使用\set varname的格式(不带第二个参数),则只是设置这个变量而没有给变量赋值。
-   可以使用不带参数的\set来显示所有变量的值。变量的示例和详细说明请参见[变量](https://doc.hcs.huawei.com/db/zh-cn/gaussdbqlh/24.1.30/tg/gaussdb-38-0004.html#ZH-CN_TOPIC_0000001705308449__zh-cn_topic_0059778819_zh-cn_topic_0058968129_li39134862 "变量")。 |
| SQL代换     | 利用gsql的变量特性,可以将常用的SQL语句设置为变量,以简化操作。SQL代换的示例和详细说明请参见[SQL代换](https://doc.hcs.huawei.com/db/zh-cn/gaussdbqlh/24.1.30/tg/gaussdb-38-0004.html#ZH-CN_TOPIC_0000001705308449__zh-cn_topic_0059778819_zh-cn_topic_0058968129_li56915888 "SQL代换")。                                                                                                                                                                                                                                            |
| 自定义提示符    | gsql使用的提示符支持用户自定义。可以通过修改gsql预留的三个变量PROMPT1、PROMPT2、PROMPT3来改变提示符。这三个变量的值可以用户自定义,也可以使用gsql预定义的值。详细请参见[提示符](https://doc.hcs.huawei.com/db/zh-cn/gaussdbqlh/24.1.30/tg/gaussdb-38-0004.html#ZH-CN_TOPIC_0000001705308449__zh-cn_topic_0059778819_zh-cn_topic_0058968129_li65414495 "提示符")。                                                                                                                                                                                               |
| 客户端操作历史记录 | gsql支持客户端操作历史记录,当客户端连接时指定“-r”参数,此功能被打开。可以通过\set设置记录历史的条数,例如,\set HISTSIZE 50,将记录历史的条数设置为50,\set HISTSIZE 0,不记录历史。说明:-   客户端操作历史记录条数默认设置为32条,最多支持记录500条。当客户端交互式输入包含中文字符时,只支持UTF-8 的编码环境。
-   出于安全考虑,将包含PASSWORD、IDENTIFIED、GS_ENCRYPT_AES128、GS_DECRYPT_AES128、GS_ENCRYPT、GS_DECRYPT、GS_ENCRYPT_BYTEA、GS_DECRYPT_BYTEA、PG_CREATE_PHYSICAL_REPLICATION_SLOT_EXTERN、SECRET_ACCESS_KEY、SECRETKEY、CREATE_CREDENTIAL、ACCESSKEY、SECRET_KEY等字符串(不区分大小写)的SQL语句记录识别为包含敏感信息的语句,不会记录到历史信息中,即不能通过上下翻回显。  |

-   []()[]()变量[]()[]()可以使用gsql元命令\set设置一个变量。例如把变量foo的值设置为bar:

    |                                 |
    | ------------------------------- |
    | ```
    gaussdb=# \set foo bar 
    ``` |

    要引用变量的值,在变量前面加冒号。例如查看变量的值:

    |                                   |
    | --------------------------------- |
    | ```
    gaussdb=# \echo :foo bar 
    ``` |

    这种变量的引用方法适用于规则的SQL语句和除\copy、\ef、\help、\sf、\!以外的元命令。

    gsql预定义了一些特殊变量,同时也规划了变量的取值。为了保证和后续版本最大限度地兼容,请避免以其他目的使用这些变量。

​