GBase 8a
运维管理
文章

南大通用GBase 8a MPP Cluster gccli常用参数

GBase用户kk
发表于2024-12-14 21:30:21526次浏览0个评论

gccli参数说明

  • -c, --comments
    保留注释内容,默认情况下注释内容不会发送到server端,通过-c参数可以将注释内容也发送给server端。
  • -D, --database=name
    指定默认使用的数据库 -d后面跟数据库名。
    比如指定 -D test
    后续查询test库下t1表的内容,可以省略数据库写成:

    select * from t1;
  • -e, --execute=name
    执行SQL语句并返回shell命令行。
    -e后面跟SQL语句,比如

    gccli -utest -ptest -e"select * from test.t1"
  • -f, --force
    强制执行模式,当执行多条SQL时,如果遇到错误后,后续没有执行的SQL不再执行,通过指定-f参数可以继续执行后面的SQL
    如:3条SQL, "select 1;select;select 2"
    其中select 1和select 2均可以正常执行,中间的select是无法正常执行的。

    gccli -utest -ptest -e"select 1;select;select2"
    +---+
    | 1 |
    +---+
    | 1 |
    +---+
    ERROR 1064 (42000) at line1: You have an error in your SQL syntax; check the manual that corresponds to your GBase server version for the right syntax to use near'' at line 1

不加-f可以看到第二条语句执行后报错,select 2并没有执行;

gccli -utest -ptest -e"select 1;select;select2" -f
+---+
| 1 |
+---+
| 1 |
+---+
ERROR 1064 (42000) at line1: You have an error in your SQL syntax; check the manual that corresponds to your GBase server version for the right syntax to use near'' at line 1
+---+
| 2 |
+---+
| 2 |
+---+

指定-f参数后,第二条语句报错后,后续的第3条select 2仍然执行了。

  •  -h, --host=name

    指定连接的数据库服务器的主机名或者IP,默认不写连接的是本机127.0.0.1。
    如,连接指定IP 192.168.200.102的数据库:

    gccli -utest -ptest -h 192.168.200.102
  • -N, --skip-column-names
    默认的查询会在开头处显示字段名,通过-N参数可以屏蔽字段名。
    如:

    gccli -e"select 1 as c1"
    +----+
    | c1 |
    +----+
    |  1 |
    +----+

可以看到结果输出中开头处显示了字段名c1

gccli -e"select 1 as c1" -N
+---+
| 1 |
+---+

指定-N参数后,开头字段名部分被屏蔽。

  • -p, --password[=name] 
    指定连接数据库时的用户密码。
    如果只是-p后面没有指定密码,则进入互动模式,提示需要输入密码后才能登录数据库,如:

    gccli -utest -p
    Enter password:
    GBase client 9.5.1.10.105121.Copyright (c) 2004-2020,GBase. All Rights Reserved.
    gbase>

也可以-p后面直接跟密码,需要注意-p和密码间不要有空格,如:

gccli -utest -ptest
GBase client 9.5.1.10.105121.Copyright (c) 2004-2020,GBase. All Rights Reserved.
gbase>

注意:如果密码中含有!$等特殊字符时,通过交互模式输入是可以正常进行的,如果是-p跟密码的模式时,可能会出现密码错误等提示,这时候需要使用单引号包围密码登录数据库
如:test用户,密码是1$test

gccli -utest -p1$test
ERROR 1045 (28000):Access denied for user 'test'@'127.0.0.1'(using password:YES)
GBase client 9.5.1.10.105121.Copyright (c) 2004-2020,GBase. All Rights Reserved.

直接使用-p后跟密码1$test会出现密码错误的报错提示

gccli -utest -p'1$test'
GBase client 9.5.1.10.105121.Copyright (c) 2004-2020,GBase. All Rights Reserved.
gbase>

使用单引号包围密码后就可以正常登录了。

  • -P, --port
    通过-P参数指定连接的数据库端口号,不指定时默认的端口号是从集群配置文件gbase_8a_gcluster.cnf读取的,默认是5258。
    如指定5258端口访问数据库:

    gccli -utest -pest -h192.168.200.102 -P5258
  • -q, --quick
    结果快速返回模式,不缓存查询结果,服务器端返回结果后,客户端直接一行一行进行打印。
  • -s, --silent
    安静模式,打印出的结果会尽可能的少,去除了生成表格的字符,字段间通过制表符分隔。
    如:

    gccli -e"select 1 as a,2 as b"
    +---+---+
    | a | b |
    +---+---+
    | 1 | 2 |
    +---+---+

默认情况下,会通过字符生成表格包围结果。

gccli -e"select 1 as a,2 as b" -s
a	b
1	2

指定-s参数后,不再生成表格,字段间通过制表符分隔。

  • -u, --user=name
    指定连接数据库时的用户。
    如,使用gbase用户连接数据库:
gccli -ugbase -p   
  • -v, --verbose
    详细模式,使得屏幕打印更多的输出信息。可以使用-vvv来显示最详细的输出信息,包括SQL语句、行数以及执行时间等

    gccli -utest -e"select 1"
    +---+
    | 1 |
    +---+
    | 1 |
    +---+

默认模式下,结果只显示字段名和字段值。

gccli -utest -ptest -e"select 1" -vvv
-----------
select 1
-----------

+---+
| 1 |
+---+
| 1 |
+---+
1 row in set (Elapsed:00:00:00.00)

Bye

指定-vvv参数后,打印出了语句、行数以及执行时间等信息。

  • -V, --version
    查看gccli客户端的版本信息。
    如:

    gccli -V
    gccli ver 9.5.1.10.105121,for unknown-linux-gnu (x86_64) using readline 6.3          

评论

登录后才可以发表评论
加载中...