ksql是人大金仓提供给DBA的与KES数据库交互的命令行客户端程序。熟练使用ksql工具可以帮助DBA快速的操作和维护数据库。博文实验环境:
[kingbase@s166 bin]$ ./ksql --help
[kingbase@s166 bin]$ ./ksql -U system test
ksql (V8.0)
Type “help” for help.
test=#
经实践测试,通过默认local socket登录不需要输入密码,及时使用-W参数强制要求输入密码,实际上任意输入值都可以完成验证。
[kingbase@s166 bin]$ ./ksql -U system -W test
Password:
ksql (V8.0)
Type “help” for help.
test=#
指定了-h参数后,无论我们是否使用-W参数都要求输入用户名密码完成验证才可以登录数据库。
[kingbase@s166 bin]$ ./ksql -U system -h 192.168.0.166 test
Password for user system:
ksql (V8.0)
Type “help” for help.
test=#
如果kingbase数据库实例配置了指定端口,则客户端连接的时候需要使用-p参数指定数据库端口,kingbase数据库服务默认监听端口54321。
[kingbase@s166 bin]$ ./ksql -U system -h localhost -p 54321 test
Password for user system:
ksql (V8.0)
Type “help” for help.
test=#
[kingbase@s166 bin]$ ./ksql -V
ksql (Kingbase) V008R006C006B0021
[kingbase@s166 bin]$ ./ksql -U system -l
[kingbase@s166 bin]$ ./ksql -U system -d booklist
ksql (V8.0)
Type “help” for help.
booklist=#
[kingbase@s166 bin]$ echo “select connections;” >> /tmp/test.sql
[kingbase@s166 bin]$ ./ksql -U system -f /tmp/test.sql test
connections
-------------
7
(1 row)
使用-e参数显示执行的sql脚本中的命令

[kingbase@s166 bin]$ ./ksql -U system -q test
test=#
如果我们需要了解内部产生的查询命令,可以使用-E参数,如下示例我们执行-l参数打印数据库列表,实际上执行的命令是select d.datname as “Name”…

使用-L命令指定将会话日志存储到指定路径。连接数据库后所有的操作都将记录下来。

使用-o命令将ksql命令执行的查询结果存储到指定文件中。
使用-x参数调整行列,展示样式调整为纵向展示。

使用-c参数在ksql命令下直接执行命令并显示结果。

我们可以使用-H,–csv等指定输出为样式为html或者csv。

用法:ksql [OPTION]… [DBNAME [USERNAME]]
| 参数 | 参数说明 |
|---|---|
| -c, --command=COMMAND | 连接数据库后执行单行命令,执行完成后退出连接 |
| -d, --dbname=DBNAME | 指定连接的数据库名称 |
| -f, --file=FILENAME | 连接数据库时执行的脚本,执行完成后退出数据库连接 |
| -l, --list | 打印数据库列表 |
| -v, --set=, --variable=NAME=VALUE | 设置数据库参数变量 |
| -V, --version | 打印数据库版本信息 |
| -X, --no-ksqlrc | 不读取启动文件(~/.ksqlrc) |
| -1 (“one”), --single-transaction | 作为单个事务执行(如果非交互式) |
| -?, --help | 获取命令帮助,然后退出 |
| 参数 | 参数说明 |
|---|---|
| -a,–echo-all | echo来自脚本的所有输入 |
| -b,–echo-errors | echo失败的命令 |
| -e,–echo-queries | 发送到服务器的echo命令 |
| -E,–echo-hidden | 显示内部命令生成的查询 |
| -L,–log-file=FILENAME | 将会话日志发送到文件 |
| -n,–no-readline | 禁用增强的命令行编辑 |
| -o,–output=FILENAME | 将查询结果发送到文件(或 |
| -q,–quiet | 不输出登录提示信息 |
| -s,–single-step | 单步模式(确认每个查询) |
| -S,–single-line | 单行模式(行尾终止SQL命令) |
| 参数 | 参数说明 |
|---|---|
| -A, --no-align | 未对齐表输出模式 |
| –csv | (逗号分隔值)表格输出模式 |
| -F, --field-separator=STRING | 设置未对齐输出的字段分隔符(默认值:“ |
| -H, --html | html表格输出模式 |
| -P, --pset=VAR[=ARG] | 将打印选项VAR设置为ARG |
| -R, --record-separator=STRING | 未对齐输出的记录分隔符(默认值:换行符) |
| -t, --tuples-only | 不输出字段名 |
| -T, --table-attr=TEXT | 设置HTML表标记属性(例如,宽度、边框) |
| -x, --expanded | 调整查询结果为纵向展示 |
| -z, --field-separator-zero | 将未对齐输出的字段分隔符设置为零字节 |
| -0, --record-separator-zero | 将未对齐输出的记录分隔符设置为零字节 |
| 参数 | 参数说明 |
|---|---|
| -h, --host=HOSTNAME | 连接数据库的主机地址或者socket路径,默认local socket |
| -p, --port=PORT | 指定连接数据库端口,默认54321 |
| -U, --username=USERNAME | 连接数据库用户名,默认kingbase |
| -w, --no-password | 允许不输入密码 |
| -W, --password | 强制要求输入密码 |