Centos7安装KingbaseES V8R6

Centos7安装KingbaseES V8R6

KingbaseES V8.6 支持各种主流的Linux操作系统64位发行版本,包括 CentOS、Ubuntu、中标麒麟、银河麒麟、统信UOS、Deepin、凝思、中科方德 等操作系统
软件版本:标准版/企业版/专业版/开发版
硬件要求:
CPU:X86、龙芯、飞腾、鲲鹏
内存:512MB以上
硬盘:10GB以上空闲空间
官网的KingbaseES数据库软件包下载地址(下载时选择自己对应的CPU下载连接):
https://www.kingbase.com.cn/rjcxxz/index.htm
官网试用License下载:
https://www.kingbase.com.cn/sqwjxz/index.htm


Step1:Selinux & 防火墙关闭:
vi  /etc/selinux/config
SELINUX=disabled

setenforce 0

systemctl stop firewalld
systemctl disable firewalld

Step2:OS内核优化及参数配置:

设置前线执行命令 ulimit -a 查看相关参数
[root@localhost opt]#  ulimit  -a
core file size          (blocks, -c) 0
data seg size           (kbytes, -d) unlimited
scheduling priority             (-e) 0
file size               (blocks, -f) unlimited
pending signals                 (-i) 23127
max locked memory       (kbytes, -l) 64
max memory size         (kbytes, -m) unlimited
open files                      (-n) 1024
pipe size            (512 bytes, -p) 8
POSIX message queues     (bytes, -q) 819200
real-time priority              (-r) 0
stack size              (kbytes, -s) 8192
cpu time               (seconds, -t) unlimited
max user processes              (-u) 23127
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited

【内核参数优化】
vi /etc/sysctl.conf

net.core.wmem_default=262144
fs.file-max=76724600
vm.mmap_min_addr=65536
net.core.somaxconn=4096
net.core.wmem_max=4194304
net.core.netdev_max_backlog=10000
# 信号量,ipcs -l 或 或 -u 查看,每 16 个进程一组,每组信号量需要 17 个信号量。
# 不重新修改该值。四个参数: SEMMSL SEMMNS SEMOPM SEMMNI。SEMMSL * SEMMNI = SEMMNS (参数1 * 参数4 = 参数2),SEMMSL = SEMOPM (参数1 = 参数3)。
# 参数1(SEMMSL): max semaphores per array, 信号量,表示每个信号集中的最大信号量数目,信号量是多线程环境下使用的一种设施,它负责协调各个线程, 以保证它们能够正确、合理的使用公共资源。信号量设置时,最小250,对于processes参数设置较大的系统建议设置为processes+10。
# 参数2(SEMMNS): max semaphores system wide, 所有信号的最大数量、即系统范围内的最大信号量总数目,SEMMSL * SEMMNI。
# 参数3(SEMOPM): max ops per semop call, 代表调用单个信号集中最大信号数量,即每个信号发生时的最大系统操作数目,大于17,一般设置至少100,或者等于SEMMSL。
# 参数4(SEMMNI): max number of arrays,  代表是组(信号集的最大值),即系统范围内的最大信号集总数目。最少128。
# kernel.sem = 4096 2147483647 2147483646 512000  官方是给的这个设置。如果不设置,系统默认值(ipcs -sl 命令可查看)为 :250 3200 32 128。我没有使用官方的设置,也没有使用默认值,我调整了一下
kernel.sem = 4096 83886080 4096 20480
net.core.rmem_max=4194304
vm.overcommit_ratio=90
net.ipv4.tcp_tw_reuse=1
net.core.rmem_default=262144
net.ipv4.ip_local_port_range=40000 65535
net.ipv4.tcp_rmem=8192 87380 16777216
net.ipv4.tcp_max_syn_backlog=4096
fs.nr_open=20480000
net.ipv4.tcp_wmem=8192 87380 16777216
vm.dirty_writeback_centisecs=100
vm.dirty_ratio=95
# 所有共享内存段相加大小限制( 建议内存的 80% ,单位 page ,查看 page  大小 getconf PAGE_SIZE)
# 设置时根据自己的实际内存大小进行计算和设置,例如:page 大小 4096,8G 内存的 80% 设置为:8*1024*1024*1024/4096*80%=1677721
kernel.shmall = 1677721     #Mem*80%
# 最大单个共享内存段大小(建议为大于shared_buffer值,单位bytes。需要计算。一般建议设置为内存的50%。例如:8G内存,则参数设置为:8*1024*1024*1024*50%=4294967296。如果因为该参数导致启动失败时,可以尝试调整为75%
# kernel.shmmax = 4294967296  # 50%
kernel.shmmax = 6442450944  #Mem*75%
# 系统范围内共享内存段的最大数量(一共能生成多少共享内存段),如果是PG,每个PG数据库集群至少2个共享内存段、不重新修改该值
# kernel.shmmni = 819200  官方设置819200,如果设置该值会报错 Invalid argument,需要调小。系统默认值为4096
kernel.shmmni = 4096  #default 4096
vm.swappiness=0
net.ipv4.tcp_mem=8388608 12582912 16777216
vm.dirty_background_bytes=409600000
net.ipv4.tcp_max_tw_buckets=262144
fs.aio-max-nr = 1048576

生效内核参数优化配置:
sysctl -p


【资源使用参数优化】

查看用户的所有进程级别的限制:
ulimit  -a

用户进程级别的限制修改:
vi /etc/security/limits.conf

尾部追加配置如下:

# 设置 nofile、nproc、core。
# * 表示所有用户,也可只设置root和kingbase用户。
# soft是一个警告值,hard是真正意义的阈值、超过系统就会报错,一般设为同一个值。一般保持系统安装时的默认值即可。
# 注意:设置 * hard nofile xxx 时,xxx 值不能大于cat /proc/sys/fs/nr_open 的值(可以通过 /ect/sysct.conf 修改 fs.nr_open 值,sysctl -p生效), 否则注销后将无法正常登陆,值设置为 unlimited 则表示无限制。

# 设置用户单个进程能够打开的最大文件句柄数量
* soft nofile 65536
* hard nofile 65536
# 设置用户的最大processes数量
* soft nproc 65536
* hard nproc 65536
# 设置用户生成core文件的限制大小
* soft core unlimited
* hard core unlimited

vi /etc/security/limits.d/20-nproc.conf
# 尾部追加数据库用户的设置,修改数据库用户的最大processes数量
kingbase   soft    nproc     65536

注意:
1)修改后用户需要重新登录才能生效
2)用户进程级限制达到系统级的最大数时,需要调整系统级的最大值


【RemoveIPC参数】
systemd-logind服务中引入的一个特性,是当一个用户退出系统后,会删除所有有关的IPC对象。该特性由 /etc/systemd/logind.conf 文件中的RemoveIPC参数控制。
某些操作系统会默认打开,会造成程序信号丢失等问题。只有RedHat7及以上和一些特殊的国产Linux的版本需要修改,改之前可先查看此项是否为默认yes。
如果默认为yes,则需要设置 RemoveIPC=no。如果默认为no,则无需修改。

如果修改、则需要重启服务:
systemctl daemon-reload
systemctl restart systemd-logind.service
我的Centos7.8默认是no、无需修改。


# 重启服务器
内核参数优化完毕后,建议重启系统,内核优化参数如果设置不当、可能会导致重启后登录有问题
reboot


设置后&重启系统后执行命令 ulimit -a 查看相关参数
# ulimit -a
core file size          (blocks, -c) unlimited
data seg size           (kbytes, -d) unlimited
scheduling priority             (-e) 0
file size               (blocks, -f) unlimited
pending signals                 (-i) 23127
max locked memory       (kbytes, -l) 64
max memory size         (kbytes, -m) unlimited
open files                      (-n) 65536
pipe size            (512 bytes, -p) 8
POSIX message queues     (bytes, -q) 819200
real-time priority              (-r) 0
stack size              (kbytes, -s) 8192
cpu time               (seconds, -t) unlimited
max user processes              (-u) 65536
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited
[root@localhost ~]# 


Step3:检查系统时间
date
timedatectl 
timedatectl list-timezones |grep Shanghai
timedatectl set-timezone Asia/Shanghai    #设置时区
date -s "20230404 15:08:30"    # 也可以执行 date 040415082023.30
hwclock -w    # OS时钟同步到硬件时钟
hwclock
timedatectl 


Step4:创建用于安装数据库及运行数据库的用户及密码
useradd -m -U kingbase    # -m 创建/home目录下的用户目录,-U 创建用户同名用户组,等同于 useradd kingbase -m -g kingbase
passwd kingbase


Step5:目录规划&授权

mkdir -p /opt/Kingbase/ES/V8             # Kingbase数据库软件目录
mkdir -p /opt/Kingbase/software          # 数据库安装包及license文件存放存放目录
mkdir -p /opt/Kingbase/backup            # 数据库备份目录
chown -R kingbase:kingbase /opt/Kingbase # 如果使用kingbase用户安装数据库、需要进行目录授权,否则可能会提示没有目录权限

数据目录(data)的说明:
1)数据目录是KingbaseES中存放数据文件的目录,默认是在安装目录下的data目录(/opt/Kingbase/ES/V8/data)。
2)数据目录不必事先创建。安装过程中会提示指定数据目录,如果目录不存在安装程序会自动创建。
3)数据目录也可以与安装目录分开单独设置,您可以根据业务系统数据量来单独设置数据目录路径,例如将数据目录初始化在本机硬盘或者挂载在盘阵上。单独数据目录则注意进行数据目录的授权操作。


step6:拷贝数据库软件安装包 & 安装数据库软件
KingbaseES_V008R006C005B0054_Lin64_install.iso 安装包下载并拷贝到 /opt/Kingbase/software 目录下,然后针对iso文件进行mount
mkdir -p /mnt/kingbase
mount /opt/Kingbase/software/KingbaseES_V008R006C005B0054_Lin64_install.iso /mnt/kingbase

几种安装方式说明:
图形界面安装执行 sh setup.sh 或 sh setup.sh -i swing
命令行安装执行   sh setup.sh -i console 
静默安装执行     sh setup.sh -i silent (需要配置好应答文件 installer.properties,注意:Linux的路径符号\需要转移"\\" & 不能使用中文 & #注释仅支持位于行首)

切换到 kingbase 用户进行安装:
su - kingbase
cd /mnt/kingbase
sh setup.sh -i console   #我采用命令行交互安装方式


直接回车  # for Welcome 和 License Agreement 阅读,多次直接回车,直到出现最终的License Agreement
Y         # for LICENSE AGREEMENT? 确认
1         # // 1-Full:完全安装,安装KingbaseES所有组件,推荐大多数用户使用,是默认的安装方式。2-Client:只安装KingbaseES的所有客户端工具、编程接口和扩展文件。3-Custom:和完全安装的区别是可以选择组件
/opt/Kingbase/software/license.dat    #指定License文件路径、如果指定正确会显示License信息。官网下载授权文件默认为90天的试用期
直接回车  # 安装路径使用默认路径 /opt/Kingbase/ES/V8,如果要修改则请输入
Y         # 安装路径二次确认
直接回车  # 安装信息确认
直接回车  # 数据库安装路径确认
......等待数据库软件安装过程......
直接回车  # 数据目录默认为 /opt/Kingbase/ES/V8/data,如要指定则请输入(目录不存在则安装是会自动创建)
直接回车  # 数据库端口默认为 54321,如要修改则请输入
直接回车  # 数据库管理员用户名默认为 system,如要修改则请输入
Kingbase.123456  # 指定数据库管理员密码
Kingbase.123456  # 指定数据库管理员密码二次确认
1         # 指定1(UTF-8)编码,如果不指定默认为GBK
1         # 数据库模式:1-PG、2-Oracle,如果不指定默认兼容模式为Oracle模式
1         # Case Sensitivity 大小写敏感性设置:1 YES,2 No,如果不指定默认为Y(敏感)
直接回车  # 数据块大小(1-8K、2-16K、3-32K),默认为8k
直接回车  # Tips 提示准备接下来会进行数据库初始化(initialized),直接回车确认
......等待数据库初始化......

初始完毕后、提示安装完成(自动初始化的数据库名为test,Oracle模式则为TEST),信息如下:
===============================================================================
Installation Complete
---------------------
Congratulations. KingbaseES V8 has been successfully installed to:
/opt/Kingbase/ES/V8
If you want to register KingbaseES V8 as OS service, please run
    /opt/Kingbase/ES/V8/install/script/root.sh
PRESS TO EXIT THE INSTALLER:

按照提示,新开一个shell,以 root 身份执行 root.sh 来注册系统服务(OS Server):
# /opt/Kingbase/ES/V8/install/script/root.sh
Starting KingbaseES V8: 
waiting for server to start.... done
server started
KingbaseES V8 started successfully
[root@localhost software]# 

最后安装shell界面直接回车,结束数据库安装。

执行 root.sh 后,系统生成了数据库服务的自启动脚本:
cat /etc/init.d/kingbase8d


# netstat -an |grep 54321
tcp        0      0 0.0.0.0:54321           0.0.0.0:*               LISTEN     
tcp6       0      0 :::54321                :::*                    LISTEN     
unix  2      [ ACC ]     STREAM     LISTENING     29953    /tmp/.s.KINGBASE.54321

step7:数据库服务启动和停止

方式1--通过系统服务的方式管理数据库
停止数据库服务:
service kingbase8d stop
等同于
/etc/init.d/kingbase8d stop

启动数据库服务:
service kingbase8d start
等同于
/etc/init.d/kingbase8d start

重启数据库服务
service kingbase8d restart
等同于
/etc/init.d/kingbase8d restart


查看数据库服务状态
service kingbase8d status
等同于
/etc/init.d/kingbase8d status


方式2--使用sys_ctl命令
sys_ctl start –D $DBDATA
其中 $DBDATA 是指 Kingbase 数据库的数据目录

sys_ctl stop –D $DBDATA [-m $SHUTDOWN-MODE]
  其中 -m 是指定数据库的停止方式,有以下三种:
  smart:    等所有的连接中止后,关闭数据库,如果客户端连接不中止,则无法关闭数据库,是默认的停止方式。
  fast :    快速关闭数据库,断开客户端的连接,让已有的事务回滚,然后正常关闭数据库;相当于Oracle数据库关闭时的immediate模式。
  immediate:立即关闭数据库,相当于数据库进程立即停止,直接退出,下次启动数据库需要进行恢复。相当于Oracle数据库关闭时的abort模式。
  比较常用的关闭数据库的方式是“fast”。


软件卸载:
使用安装用户进到安装目录下的 Uninstall 目录,执行 Uninstaller
1) 进入安装目录下的 Uninstall 目录执行卸载脚本:Uninstall.sh -i console 
2) 卸载完成时会提示 以root执行:UninstallRoot.sh
3) 删除安装目录下的所有文件: rm -rf /opt/Kingbase/ES/V8/*


查看版本信息
# su - kingbase
$ kingbase -V
KINGBASE (KingbaseES) V008R006C005B0054


如果初始化数据库和实例后,也可以在交互式终端(查询分析器或isql)中执行select version()
$ ksql -h 127.0.0.1 -U system  -p 54321 -d test
test=# select version();
                                                       version                                                        
----------------------------------------------------------------------------------------------------------------------
 KingbaseES V008R006C005B0054 on x86_64-pc-linux-gnu, compiled by gcc (GCC) 4.1.2 20080704 (Red Hat 4.1.2-46), 64-bit
(1 row)


查看数据库
test=# \l
                               List of databases
   Name    | Owner  | Encoding |   Collate   |    Ctype    | Access privileges 
-----------+--------+----------+-------------+-------------+-------------------
 security  | system | UTF8     | zh_CN.UTF-8 | zh_CN.UTF-8 | 
 template0 | system | UTF8     | zh_CN.UTF-8 | zh_CN.UTF-8 | =c/system        +
           |        |          |             |             | system=CTc/system
 template1 | system | UTF8     | zh_CN.UTF-8 | zh_CN.UTF-8 | =c/system        +
           |        |          |             |             | system=CTc/system
 test      | system | UTF8     | zh_CN.UTF-8 | zh_CN.UTF-8 | 
(4 rows)


2. 手动初始化数据库(要求以非root操作)
如果想要单独初始化创建新的db,可以通过命令 initdb 实现(initdb --help),详细步骤,这里省略


3) 数据库连接测试

本地连接
ksql -h 127.0.0.1 -U system  -p 54321 -d test

远程连接
jdbc驱动文件路径: /opt/Kingbase/ES/V8/KESRealPro/V008R006C005B0054/Interface/jdbc 

[root@localhost V8]# pwd
/opt/Kingbase/ES/V8
[root@localhost V8]# find ./ -name jdbc
./KESRealPro/V008R006C005B0054/Interface/jdbc
[root@localhost V8]# ls -l /opt/Kingbase/ES/V8/KESRealPro/V008R006C005B0054/Interface/jdbc 
total 5844
-rw-rw-r-- 1 kingbase kingbase 1044630 Apr  7  2022 kingbase8-8.6.0.jar
-rw-rw-r-- 1 kingbase kingbase  896335 Apr  7  2022 kingbase8-8.6.0.jre6.jar
-rw-rw-r-- 1 kingbase kingbase 1042292 Apr  7  2022 kingbase8-8.6.0.jre7.jar
-rw-rw-r-- 1 kingbase kingbase 1046015 Apr  7  2022 postgresql-42.2.9.jar
-rw-rw-r-- 1 kingbase kingbase  897406 Apr  7  2022 postgresql-42.2.9.jre6.jar
-rw-rw-r-- 1 kingbase kingbase 1043640 Apr  7  2022 postgresql-42.2.9.jre7.jar
[root@localhost V8]# 

MySQL jdbc 连接:
driverClassName = com.mysql.jdbc.Driver
url = jdbc:mysql://192.168.208.100:3306/testdb
username = test
password = 1q2w3e

Kingbase jdbc 连接:
driverClassName = com.kingbase8.Driver
url模板:jdbc:kingbase8://{host}:{port}/[{database}]
url = jdbc:kingbase8://192.168.208.100:54321/test
username = system
password = 1q2w3e


创建表
CREATE TABLE public.test01 (
    id integer not null,
    info varchar(255),
    constraint test01_pk primary key (id)
);

INSERT INTO public.test01(id,info) VALUES(1, 'aaa');
INSERT INTO public.test01(id,info) VALUES(2, 'bbb'),(3, 'ccc');

CREATE TABLE public.test02 (
    id integer not null,
    info varchar(255),
    constraint test02_pk primary key (id)
);

INSERT INTO public.test02(id,info) VALUES(1, 'aaa');
INSERT INTO public.test02(id,info) VALUES(2, 'bbb'),(3, 'ccc');

KingbaseES V8R6常用命令:
查看版本:
ksql -U system -d test
test=# select version();

查看帮助信息:

test=# help
You are using ksql, the command-line interface to Kingbase.
Type:  \copyright for distribution terms
       \h for help with SQL commands
       \? for help with ksql commands
       \g or terminate with semicolon to execute query
       \q to quit
 

查看所有用户
ksql -U system -d test
\du

test=# \du
                                   List of roles
 Role name |                         Attributes                         | Member of 
-----------+------------------------------------------------------------+-----------
 sao       | No inheritance                                             | {}
 sso       | No inheritance                                             | {}
 system    | Superuser, Create role, Create DB, Replication, Bypass RLS | {}


创建用户
create user test  password '1q2w3e';
grant all on database test to test;

删除授权:
revoke all on database test from test;

删除用户
drop user test;


授权
查看帮助
test=# \help grant
Command:     GRANT
Description: define access privileges
Syntax:
GRANT { { SELECT | INSERT | UPDATE | DELETE | TRUNCATE | REFERENCES | TRIGGER }
    [, ...] | ALL [ PRIVILEGES ] }
    ON { [ TABLE ] table_name [, ...]
         | ALL TABLES IN SCHEMA schema_name [, ...] }
    TO role_specification [, ...] [ WITH GRANT OPTION ]

GRANT { { SELECT | INSERT | UPDATE | REFERENCES } ( column_name [, ...] )
    [, ...] | ALL [ PRIVILEGES ] ( column_name [, ...] ) }
    ON [ TABLE ] table_name [, ...]
    TO role_specification [, ...] [ WITH GRANT OPTION ]

GRANT { { USAGE | SELECT | UPDATE }
    [, ...] | ALL [ PRIVILEGES ] }
    ON { SEQUENCE sequence_name [, ...]
         | ALL SEQUENCES IN SCHEMA schema_name [, ...] }
    TO role_specification [, ...] [ WITH GRANT OPTION ]

GRANT { { CREATE | CONNECT | TEMPORARY | TEMP } [, ...] | ALL [ PRIVILEGES ] }
    ON DATABASE database_name [, ...]
    TO role_specification [, ...] [ WITH GRANT OPTION ]

GRANT { USAGE | ALL [ PRIVILEGES ] }
    ON DOMAIN domain_name [, ...]
    TO role_specification [, ...] [ WITH GRANT OPTION ]

GRANT { USAGE | ALL [ PRIVILEGES ] }
    ON FOREIGN DATA WRAPPER fdw_name [, ...]
    TO role_specification [, ...] [ WITH GRANT OPTION ]

GRANT { USAGE | ALL [ PRIVILEGES ] }
    ON FOREIGN SERVER server_name [, ...]
    TO role_specification [, ...] [ WITH GRANT OPTION ]

GRANT { EXECUTE | ALL [ PRIVILEGES ] }
    ON { { FUNCTION | PROCEDURE | ROUTINE } routine_name [ ( [ [ argmode ] [ arg_name ] arg_type [, ...] ] ) ] [, ...]
         | ALL { FUNCTIONS | PROCEDURES | ROUTINES } IN SCHEMA schema_name [, ...] }
    TO role_specification [, ...] [ WITH GRANT OPTION ]

GRANT { USAGE | ALL [ PRIVILEGES ] }
    ON LANGUAGE lang_name [, ...]
    TO role_specification [, ...] [ WITH GRANT OPTION ]

GRANT { { SELECT | UPDATE } [, ...] | ALL [ PRIVILEGES ] }
    ON LARGE OBJECT loid [, ...]
    TO role_specification [, ...] [ WITH GRANT OPTION ]

GRANT { { CREATE | USAGE } [, ...] | ALL [ PRIVILEGES ] }
    ON SCHEMA schema_name [, ...]
    TO role_specification [, ...] [ WITH GRANT OPTION ]

GRANT { CREATE | ALL [ PRIVILEGES ] }
    ON TABLESPACE tablespace_name [, ...]
    TO role_specification [, ...] [ WITH GRANT OPTION ]

GRANT { USAGE | ALL [ PRIVILEGES ] }
    ON TYPE type_name [, ...]
    TO role_specification [, ...] [ WITH GRANT OPTION ]

where role_specification can be:

    [ GROUP ] role_name
  | PUBLIC
  | CURRENT_USER
  | SESSION_USER

GRANT role_name [, ...] TO role_name [, ...] [ WITH ADMIN OPTION ]


grant all on database test to test;
grant all on database test to public;  //public表示授权给所有用户


删除权限
test=# \help revoke
Command:     REVOKE
Description: remove access privileges
Syntax:
REVOKE [ GRANT OPTION FOR ]
    { { SELECT | INSERT | UPDATE | DELETE | TRUNCATE | REFERENCES | TRIGGER }
    [, ...] | ALL [ PRIVILEGES ] }
    ON { [ TABLE ] table_name [, ...]
         | ALL TABLES IN SCHEMA schema_name [, ...] }
    FROM { [ GROUP ] role_name | PUBLIC } [, ...]
    [ CASCADE | RESTRICT ]

REVOKE [ GRANT OPTION FOR ]
    { { SELECT | INSERT | UPDATE | REFERENCES } ( column_name [, ...] )
    [, ...] | ALL [ PRIVILEGES ] ( column_name [, ...] ) }
    ON [ TABLE ] table_name [, ...]
    FROM { [ GROUP ] role_name | PUBLIC } [, ...]
    [ CASCADE | RESTRICT ]

REVOKE [ GRANT OPTION FOR ]
    { { USAGE | SELECT | UPDATE }
    [, ...] | ALL [ PRIVILEGES ] }
    ON { SEQUENCE sequence_name [, ...]
         | ALL SEQUENCES IN SCHEMA schema_name [, ...] }
    FROM { [ GROUP ] role_name | PUBLIC } [, ...]
    [ CASCADE | RESTRICT ]

REVOKE [ GRANT OPTION FOR ]
    { { CREATE | CONNECT | TEMPORARY | TEMP } [, ...] | ALL [ PRIVILEGES ] }
    ON DATABASE database_name [, ...]
    FROM { [ GROUP ] role_name | PUBLIC } [, ...]
    [ CASCADE | RESTRICT ]

REVOKE [ GRANT OPTION FOR ]
    { USAGE | ALL [ PRIVILEGES ] }
    ON DOMAIN domain_name [, ...]
    FROM { [ GROUP ] role_name | PUBLIC } [, ...]
    [ CASCADE | RESTRICT ]

REVOKE [ GRANT OPTION FOR ]
    { USAGE | ALL [ PRIVILEGES ] }
    ON FOREIGN DATA WRAPPER fdw_name [, ...]
    FROM { [ GROUP ] role_name | PUBLIC } [, ...]
    [ CASCADE | RESTRICT ]

REVOKE [ GRANT OPTION FOR ]
    { USAGE | ALL [ PRIVILEGES ] }
    ON FOREIGN SERVER server_name [, ...]
    FROM { [ GROUP ] role_name | PUBLIC } [, ...]
    [ CASCADE | RESTRICT ]

REVOKE [ GRANT OPTION FOR ]
    { EXECUTE | ALL [ PRIVILEGES ] }
    ON { { FUNCTION | PROCEDURE | ROUTINE } function_name [ ( [ [ argmode ] [ arg_name ] arg_type [, ...] ] ) ] [, ...]
         | ALL { FUNCTIONS | PROCEDURES | ROUTINES } IN SCHEMA schema_name [, ...] }
    FROM { [ GROUP ] role_name | PUBLIC } [, ...]
    [ CASCADE | RESTRICT ]

REVOKE [ GRANT OPTION FOR ]
    { USAGE | ALL [ PRIVILEGES ] }
    ON LANGUAGE lang_name [, ...]
    FROM { [ GROUP ] role_name | PUBLIC } [, ...]
    [ CASCADE | RESTRICT ]

REVOKE [ GRANT OPTION FOR ]
    { { SELECT | UPDATE } [, ...] | ALL [ PRIVILEGES ] }
    ON LARGE OBJECT loid [, ...]
    FROM { [ GROUP ] role_name | PUBLIC } [, ...]
    [ CASCADE | RESTRICT ]

REVOKE [ GRANT OPTION FOR ]
    { { CREATE | USAGE } [, ...] | ALL [ PRIVILEGES ] }
    ON SCHEMA schema_name [, ...]
    FROM { [ GROUP ] role_name | PUBLIC } [, ...]
    [ CASCADE | RESTRICT ]

REVOKE [ GRANT OPTION FOR ]
    { CREATE | ALL [ PRIVILEGES ] }
    ON TABLESPACE tablespace_name [, ...]
    FROM { [ GROUP ] role_name | PUBLIC } [, ...]
    [ CASCADE | RESTRICT ]

REVOKE [ GRANT OPTION FOR ]
    { USAGE | ALL [ PRIVILEGES ] }
    ON TYPE type_name [, ...]
    FROM { [ GROUP ] role_name | PUBLIC } [, ...]
    [ CASCADE | RESTRICT ]

REVOKE [ ADMIN OPTION FOR ]
    role_name [, ...] FROM role_name [, ...]
    [ CASCADE | RESTRICT ]

revoke all on database test from test;
revoke all on database test from public;


创建数据库
create database testdb02;

删除数据库
drop database testdb02;

修改数据库用户密码
ksql -U system -d test
alter user system password '123456';

查看所有参数设置
show all;

查看对应参数设置
show name;

大小写敏感配置查看:
show enable_ci;  //V8R6 大小写敏感参数显示
show case_sensitive; //V8R3 大小写敏感参数显示
另外注意:V8.6中search_path中的模式名需要写成小写,而V8.3中为大写


初始化数据库命令帮助
./initdb --help
注意:有些数据库不支持Oracle/PG模式的设置,例如:KingbaseES V8R3版本的数据库,initdb --help 查看帮助时,就没有 -m pg 参数选项
 

你可能感兴趣的:(数据库,ubuntu,linux,数据库)