一、ksql命令工具简介
ksql是人大金仓提供给DBA的与KES数据库交互的命令行客户端程序。熟练使用ksql工具可以帮助DBA快速的操作和维护数据库。博文实验环境:
- 操作系统:centos7.6
- kingbase版本:V008R006C006B0021
二、ksql使用示例
1、获取命令帮助
[kingbase@s166 bin]$ ./ksql --help
2、指定用户登录test库
[kingbase@s166 bin]$ ./ksql -U system test
ksql (V8.0)
Type “help” for help.
test=#
3、强制要求输入密码
经实践测试,通过默认local socket登录不需要输入密码,及时使用-W参数强制要求输入密码,实际上任意输入值都可以完成验证。
[kingbase@s166 bin]$ ./ksql -U system -W test
Password:
ksql (V8.0)
Type “help” for help.
test=#
4、指定数据库地址登录
指定了-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=#
5、指定数据库监听端口地址登录
如果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=#
6、查看数据库版本
[kingbase@s166 bin]$ ./ksql -V
ksql (Kingbase) V008R006C006B0021
7、查看数据库列表
[kingbase@s166 bin]$ ./ksql -U system -l
8、连接指定的数据库
[kingbase@s166 bin]$ ./ksql -U system -d booklist
ksql (V8.0)
Type “help” for help.
booklist=#
9、执行指定的sql脚本
[kingbase@s166 bin]$ echo “select connections;” >> /tmp/test.sql
[kingbase@s166 bin]$ ./ksql -U system -f /tmp/test.sql test
connections
-------------
7
(1 row)
10、显示执行的sql脚本中的命令
使用-e参数显示执行的sql脚本中的命令
11、不显示登录信息
[kingbase@s166 bin]$ ./ksql -U system -q test
test=#
12、显示内部生产的查询命令
如果我们需要了解内部产生的查询命令,可以使用-E参数,如下示例我们执行-l参数打印数据库列表,实际上执行的命令是select d.datname as “Name”…
13、将会话日志存储到指定文件
使用-L命令指定将会话日志存储到指定路径。连接数据库后所有的操作都将记录下来。
14、将查询结果写入指定文件
使用-o命令将ksql命令执行的查询结果存储到指定文件中。
15、调整结果为纵向展示
使用-x参数调整行列,展示样式调整为纵向展示。
16、执行单行命令
使用-c参数在ksql命令下直接执行命令并显示结果。
17、指定输出格式
我们可以使用-H,–csv等指定输出为样式为html或者csv。
三、ksql命令参数说明
1、命令语法
用法:ksql [OPTION]… [DBNAME [USERNAME]]
2、通用参数
参数 | 参数说明 |
---|---|
-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 | 获取命令帮助,然后退出 |
3、输入输出参数
参数 | 参数说明 |
---|---|
-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命令) |
4、输出格式参数
参数 | 参数说明 |
---|---|
-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 | 将未对齐输出的记录分隔符设置为零字节 |
5、连接参数
参数 | 参数说明 |
---|---|
-h, --host=HOSTNAME | 连接数据库的主机地址或者socket路径,默认local socket |
-p, --port=PORT | 指定连接数据库端口,默认54321 |
-U, --username=USERNAME | 连接数据库用户名,默认kingbase |
-w, --no-password | 允许不输入密码 |
-W, --password | 强制要求输入密码 |