金仓数据库KingbaseES ksql工具用户指南及参考--2. Ksql快速启动

目录

2.1. Ksql概述

2.1.1. Ksql命令行架构

2.2. Ksql先决条件

2.3. 启动Ksql命令行

2.4. 连接目标数据库

2.5. 执行一个查询

2.6. 退出Ksql


2.1. Ksql概述

Ksql是KingbaseES基于终端的前端。提供交互式查询,通过文件输入或者命令行输入,得到查询结果。此外,Ksql还提供一些元命令和多种类似shell 的特性来为编写脚本和自动化多种任务提供便利。

2.1.1. Ksql命令行架构

Ksql命令行使用了一个两层模型,其中包括:

  • 客户端(用户命令行接口)

  • 数据库(KingbaseES数据库)

Ksql 客户端

命令行用户界面基于字符终端实现。

KingbaseES数据库

KingbaseES数据库使用基于消息的协议在Ksql客户端和后端之间通信,协议支持TCP/IP和Unix套接字。

2.2. Ksql先决条件

Ksql是KingbaseES数据库的一个组件,在安装KingbaseES数据库时,默认会安装Ksql。

在运行Ksql之前还需要做什么呢?

  • 安装KingbaseES数据库或Ksql客户端;

  • 获取目标数据库的名称、主机名和服务器的端口号以及用户名;

  • 确保连接的数据库已启动;

2.3. 启动Ksql命令行

Ksql是一个常规KingbaseES客户端应用。为了连接到数据库,你需要知道你的目标数据库的名称、主机名和该服务器的端口号,以及用于连接数据库的用户名。可以通过命令行选项告知Ksql这些参数,分别是-d-h-p以及-U 。如果发现一个参数不属于任何选项,它将被解释为数据库名称(如果已经给出数据库名称,就解释为用户名)。这些选项并非都是必须的,它们都有可用的默认值。如果省略主机名,Ksql将连接到本地主机上的服务器,或通过TCP/IP连接到主机上的localhost。默认端口号则在编译时决定。由于数据库服务器使用相同的默认值,大多数情况下你将不必指定端口。默认的用户名和数据库名与操作系统用户名相同。

当默认值不是很符合实际时,可以把环境变量KINGBASE_DATABASE 、KINGBASE_HOST 、KINGBASE_PORT 以及KINGBASE_USER 设置为适当的值。用一个~/.kbpass 文件来避免定期输入密码也很方便。

另一种指定连接参数的方法是用一个``conninfo``* 字符串或者一个URI,它可以被用来替代数据库名。这种机制可以让我们对连接具有很广的控制权。例如:

$ ksql "service=myservice sslmode=require"
$ ksql kingbase://dbmaster:5433/mydb?sslmode=require

如果由于任何原因(例如权限不足、服务器没有在目标主机上运行等)导致连接无法建立,Ksql将返回一个错误并且终止。

如果标准输入和标准输出都是一个终端,那么Ksql会把客户端编码设置成“auto”,这会使Ksql从区域设置(Linux系统上的 LC_CTYPE 环境变量)中检测合适的客户端编码。如果这样不起作用,可以使用环境变量KINGBASE_CLIENTENCODING覆盖客户端编码。

2.4. 连接目标数据库

在Linux或者Windows终端输入Ksql命令:

$ ksql -p 54320 -d test
ksql (V8.0)
Type "help" for help.

2.5. 执行一个查询

在正常操作时,Ksql会提供一个提示符,该提示符是Ksql当前连接到的数据库名称后面跟上字符串=#。例如:

$ ksql testdb
ksql (V8.0)
Type "help" for help.

testdb=#

在提示符下,用户可以键入SQL命令。正常情况下,当碰到一个表示命令终结的分号时,输入的行会被发送给服务器。一行的结束并不表示命令的完结。因此,为了清晰,可以把命令散布在多个行上。如果命令被发送并且执行而不产生错误,该命令的结果将会显示在屏幕上。例如:

test=# select a, b from t1;
 a | b
---+---
 1 | 2
 3 | 4
(2 rows)

如果不受信任的用户能够访问没有采用 安全使用模式 的数据库,通过从search_path删除公共可写的模式来开始会话。可以在连接字符串加入options=-csearch_path=或者在其他SQL命令之前发出SELECT sys_catalog.set_config('search_path', '', false)。这种考虑并非专门针对Ksql,它适用于每一种执行任意SQL命令的接口。

只要执行命令,Ksql还会测试 LISTEN 和 NOTIFY 产生的异步通知。

C 风格的注释块会被传给服务器处理并且移除,Ksql会自己移除掉 SQL 标准的注释。

2.6. 退出Ksql

如果需要退出Ksql命令行,输入 \q 即可,Ksql正常完成,它会向 shell 返回 0。如果它自身发生一个致命错误(例如内存用完、找不到文件),它会返回 1。如果到服务器的连接出问题并且事务不是交互式的,它会返回 2。如果在脚本中发生错误,它会返回 3 并且变量ON_ERROR_STOP会被设置。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值