Centos7安装KingbaseES V8R6

  • Post author:
  • Post category:其他


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 <ENTER> 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 参数选项



版权声明:本文为sunny05296原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。