Heartsuit's Simple Blog

A place to hold mainly reading notes, and some technical stuff occasionally. 这里主要是一些读书笔记、感悟;还有部分技术相关的内容。


Project maintained by heartsuit Hosted on GitHub Pages — Theme by mattgraham

人大金仓数据库Kingbase8在CentOS7上的安装与使用

目录[-]

背景

最近接触了个项目,数据库用的是国产数据库:人大金仓V8。简单总结下 Kingbase8CentOS7 上的安装与使用。

下载

手机号、验证码,下载镜像以及开发版授权证书:https://www.kingbase.com.cn/rjcxxz/index.htm 安装文档: https://help.kingbase.com.cn/stage-api/profile/document/kes/v8r6/html/install-updata/linux/install-linux/install-linux-3.html#id13

修改主机名

[root@hadoop2 ~]# hostnamectl set-hostname hadoop4
[root@hadoop2 ~]# vi /etc/hosts
# 重启生效(其实已经生效了,断开连接重连即可)
[root@hadoop2 ~]# reboot
连接断开
连接主机...
连接主机成功

安装

大体步骤:创建用户 kingbase ,挂载镜像,切换用户 kingbase ,安装,切换用户root,初始化。

[root@hadoop4 ~]# cd /opt/
[root@hadoop4 opt]# mkdir KingbaseES_V8R6_Lin64_install
# 新增用户,赋予权限
[root@hadoop4 opt]# useradd kingbase
[root@hadoop4 opt]# chown -R kingbase:kingbase /opt/KingbaseES_V8R6_Lin64_install/

# 挂载下载的镜像
[root@hadoop4 opt]# mkdir /kingbase
[root@hadoop4 opt]# mount /opt/KingbaseES_V8R6_Lin64_install/KingbaseES_V008R006C005B0054_Lin64_install.iso /kingbase
mount: /dev/loop0 写保护,将以只读方式挂载
[root@hadoop4 opt]# chown -R kingbase:kingbase /kingbase
chown: 正在更改"/kingbase/setup/install.bin" 的所有者: 只读文件系统
chown: 正在更改"/kingbase/setup/installer.properties" 的所有者: 只读文件系统
chown: 正在更改"/kingbase/setup/MD5" 的所有者: 只读文件系统
chown: 正在更改"/kingbase/setup" 的所有者: 只读文件系统
chown: 正在更改"/kingbase/setup.sh" 的所有者: 只读文件系统
chown: 正在更改"/kingbase" 的所有者: 只读文件系统

# 切换用户,准备安装
[root@hadoop4 opt]# su kingbase

# 开始安装
[kingbase@hadoop4 opt]$ sh /kingbase/setup.sh
Now launch installer...
tee: .installer.log: 只读文件系统
Preparing to install
Extracting the JRE from the installer archive...
Unpacking the JRE...
Extracting the installation resources from the installer archive...
Configuring the installer for this system\'s environment...

Launching installer...
Graphical installers are not supported by the VM. The console mode will be used instead...
===============================================================================
KingbaseES V8     
网址:www.kingbase.com.cn
全国服务热线:400-601-1188
技术支持邮箱:support@kingbase.com.cn
是否接受此许可协议条款? (Y/N): Y

===============================================================================
选择安装集
-----
请选择将由本安装程序安装的“安装集”。

  ->1- 完全安装
    2- 客户端安装
    3- 定制安装

输入“安装集”的号码,或按 <ENTER> 键以接受缺省值
   : 
===============================================================================
选择授权文件
------
文件路径: /opt/KingbaseES_V8R6_Lin64_install/license_12350_0.dat

License序列号 --- 启用 --- 74FE7946-4378-11EC-AE8E-000C29CBE49F
生产日期 --- 启用 --- 2021-11-12
产品名称 --- 启用 --- KingbaseES V8
细分版本模板名 --- 启用 --- SALES-开发版 V8R6
产品版本号 --- 启用 --- V008R006C
浮动基准日期 ------ 启用
有效期间 --- 启用 --- 0
用户名称 --- 启用 --- 官方网站试用授权
项目名称 --- 启用 --- 官方网站试用授权
CPU检查 --- 启用 --- 0
容器名称 --- 禁用 --- 0
MAC地址 --- 启用 --- 00:00:00:00:00:00
最大连接数 --- 启用 --- 10
分区 --- 启用 --- 0
物理同步 --- 启用 --- 0
读写分离模块 --- 启用 --- 0
恢复到指定时间点 --- 启用 --- 0
集群对网络故障的容错 --- 启用 --- 0
快速加载 --- 启用 --- 0
日志压缩 --- 启用 --- 0
全文检索 --- 启用 --- 0
性能优化包(性能诊断) --- 启用 --- 0
性能优化包(性能调优) --- 启用 --- 0
保密通讯协议 --- 启用 --- 0
审计 --- 启用 --- 0
三权分立 --- 启用 --- 0
透明加密 --- 启用 --- 0
强制访问控制 --- 启用 --- 0
列加密 --- 启用 --- 0
密码复杂度 --- 启用 --- 0
用户锁定 --- 启用 --- 0
集群管理软件 --- 启用 --- 0
集群配置工具 --- 启用 --- 0
集群高级管理包 --- 启用 --- 0
并行查询 --- 启用 --- 0
并行备份还原 --- 启用 --- 0
异构数据源 --- 启用 --- 0
日志解析 --- 启用 --- 0
===============================================================================
选择安装目录
------

请选择一个安装目录。

您想在哪一位置安装?

  缺省安装文件夹: /opt/Kingbase/ES/V8

输入一个绝对路径,或按 <ENTER> 键以接受缺省路径
      : /opt/KingbaseES_V8R6_Lin64_install/V8

安装文件夹为: /opt/KingbaseES_V8R6_Lin64_install/V8
   是否正确? (Y/N): Y
===============================================================================
预安装摘要
-----

在继续执行前请检查以下信息:

产品名:
    KingbaseES V8

安装文件夹:
    /opt/KingbaseES_V8R6_Lin64_install/V8

产品功能部件:
    数据库服务器,
    数据迁移工具,
    接口,
    数据库部署工具,
    高可用组件,
    数据库对象管理工具

磁盘空间信息(用于安装目标): 
    所需空间:  2,995.44 MB
    可用空间: 43,977.65 MB

请按 <ENTER> 键继续: 
===============================================================================
准备就绪,可以安装
---------

本安装程序已准备完毕,可在下列位置安装 KingbaseES V8:

/opt/KingbaseES_V8R6_Lin64_install/V8

按 <ENTER> 键进行安装: 
===============================================================================
正在安装...
===============================================================================
选择存储数据的文件夹
----------
请选择一个文件夹,该文件夹必须为空。
Data folder (默认: /opt/KingbaseES_V8R6_Lin64_install/V8/data): 
===============================================================================
数据库端口
-----
请输入数据库服务监听端口,默认54321。
端口 (默认: 54321): 
===============================================================================
数据库管理员
------

请输入数据库管理员用户名。

用户名: (默认: system): 
===============================================================================
输入密码
----

本次安装需输入密码才能继续。

请输入密码: 请输入密码:*******
===============================================================================
再次输入密码
------

本次安装需再次输入密码才能继续。

请再次输入密码: 请再次输入密码:*******
===============================================================================
数据库服务字符集
--------

请输入服务端字符集编码。

  ->1- UTF8
    2- GBK
    3- GB18030

输入您选择的号码,或按 <ENTER> 键以接受缺省值: 
===============================================================================
数据库兼容模式
-------

请输入数据库兼容模式。
    1- PG
  ->2- ORACLE

输入您选择的号码,或按 <ENTER> 键以接受缺省值: 
===============================================================================
字符大小写敏感特性
---------
请输入字符大小写敏感特性。

  ->1- YES
    2- NO

输入您选择的号码,或按 <ENTER> 键以接受缺省值: 
===============================================================================
存储块大小
-----
请输入存储块大小。

  ->1- 8k
    2- 16k
    3- 32k

输入您选择的号码,或按 <ENTER> 键以接受缺省值: 
===============================================================================
提示
数据库即将被安装,需要花费一些时间,请耐心等待。
请按 <ENTER> 键继续: 
===============================================================================
请稍候
===============================================================================
安装完成
----

恭喜!KingbaseES V8 已成功地安装到:

/opt/KingbaseES_V8R6_Lin64_install/V8

如果您需要将 KingbaseES V8 注册为系统服务,请运行

    /opt/KingbaseES_V8R6_Lin64_install/V8/install/script/root.sh

按 <ENTER> 键以退出安装程序: 

cat: .installer.log: 没有那个文件或目录
Complete.

以上操作后,还需要初始化才算安装完成。

[kingbase@hadoop4 opt]$ /opt/KingbaseES_V8R6_Lin64_install/V8/install/script/root.sh
Must be root to run this script, and root.sh should be executed in the '/opt/KingbaseES_V8R6_Lin64_install/V8/install/script/root.sh' way, not 'sh /opt/KingbaseES_V8R6_Lin64_install/V8/install/script/root.sh'.
[kingbase@hadoop4 opt]$ exit
exit

# 上面报错了,需要切换至root用户才可以
[root@hadoop4 opt]# /opt/KingbaseES_V8R6_Lin64_install/V8/install/script/root.sh
Starting KingbaseES V8: 
waiting for server to start.... done
server started
KingbaseES V8 started successfully
[root@hadoop4 opt]# 

查看版本

通过本地客户端连接或者查看版本是报错了:

could not change directory to “/root”: 权限不够

解决:切换用户: chmod 755 /root

[kingbase@hadoop4 root]$ ksql -U system test
could not change directory to "/root": 权限不够
ksql (V8.0)
Type "help" for help.

test=# \q

[kingbase@hadoop4 root]$ kingbase -V
LOG:  42501: could not change directory to "/root": Permission denied
LOCATION:  resolve_symlinks, exec.c:310
KINGBASE (KingbaseES) V008R006C005B0054

# 赋权
[root@hadoop4 ~]# chmod 755 /root

[kingbase@hadoop4 root]$ kingbase -V
KINGBASE (KingbaseES) V008R006C005B0054

数据管理

测试 SQL 用法以及常用操作。测试之前先建立连接: ksql -U system test

基本使用

-- 一定要注意:关键词区分大小写
test=# CREATE TABLE test_table(a int);       
CREATE TABLE

test=# \dt
                关联列表
 架构模式 |    名称    |  类型  | 拥有者 
----------+------------+--------+--------
 public   | test_table | 数据表 | system
(1 行记录)

test=# \d test_table
        数据表 "public.test_table"
 栏位 |  类型   | 校对规则 | 可空的 | 预设 
------+---------+----------+--------+------
 a    | integer |          |        | 

test=# INSERT INTO test_table VALUES(88);
INSERT 0 1
test=# SELECT * FROM test_table;
 a  
----
 88
(1 行记录)

创建数据库

test=# CREATE DATABASE my_db_name;
CREATE DATABASE
test=# \l
                                  数据库列表
   名称    | 拥有者 | 字元编码 |  校对规则   |    Ctype    |     存取权限      
-----------+--------+----------+-------------+-------------+-------------------
 my_db_name   | system | UTF8     | zh_CN.UTF-8 | zh_CN.UTF-8 | 
 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 | 
(5 行记录)

数据还原

还原过程有报错,但是数据库表成功导入。。

sys_restore -Usystem -Fc /opt/KingbaseES_V8R6_Lin64_install/to_restore/my_db_name.dmp -d my_db_name

启动与停止

sys_ctl start -D /opt/KingbaseES_V8R6_Lin64_install/V8/data
sys_ctl stop -D /opt/KingbaseES_V8R6_Lin64_install/V8/data

日志目录

/opt/KingbaseES_V8R6_Lin64_install/V8/data/sys_log

命令行常用命令

# 切换用户
[root@hadoop4 ~]# su kingbase

# 命令行客户端登录
[kingbase@hadoop4 root]$ ksql -U system test
ksql (V8.0)
输入 "help" 来获取帮助信息.

# 切换数据库
test-# \c abc_db
您现在已经连接到数据库 "abc_db",用户 "system".

# 列出所有库
abc_db-# \l
                                  数据库列表
   名称    | 拥有者 | 字元编码 |  校对规则   |    Ctype    |     存取权限      
-----------+--------+----------+-------------+-------------+-------------------
 abc_db   | system | UTF8     | zh_CN.UTF-8 | zh_CN.UTF-8 | 
 xyz_db   | system | UTF8     | zh_CN.UTF-8 | zh_CN.UTF-8 | 
 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 | 
(6 行记录)

# 切换数据库
abc_db-# \c test
您现在已经连接到数据库 "test",用户 "system".

# 列出当前库下的所有表
test-# \dt
                关联列表
 架构模式 |    名称    |  类型  | 拥有者 
----------+------------+--------+--------
 public   | test_table | 数据表 | system
(1 行记录)

# 查看表结构
test-# \d test_table
        数据表 "public.test_table"
 栏位 |  类型   | 校对规则 | 可空的 | 预设 
------+---------+----------+--------+------
 a    | integer |          |        | 

# 查看所有用户
test-# \du
                             角色列表
 角色名称  |                    属性                    | 成员属于 
-----------+--------------------------------------------+----------
 sao       | 没有继承                                   | {}
 sso       | 没有继承                                   | {}
 system    | 超级用户, 建立角色, 建立 DB, 复制, 绕过RLS | {}
 qwerty    |                                            | {}

# 显示字符编码设置
test-# \encoding
UTF8

# 退出
test-# \q

[kingbase@hadoop4 root]$

GUI可视化远程连接

我这里使用了两种方式进行远程的可视化连接, DBeaverIDEA 。远程连接前我先关闭了防火墙: systemctl stop firewalld.service

不过,刚开始时通过 DBeaver/IDEA 连接报错:

The authentication type 10 is not supported. Check that you have configured the sys_hba.conf file to include the client’s IP address or subnet, and that it is using an authentication scheme supported by the driver.

原因: Kingbase 驱动的版本与服务版本不一致!!数据库服务用的是 8.6.0 ,但是用的驱动是 8.2.0

如果无法解决问题,可以尝试修改配置(将IPv4下0.0.0.0/0的scram-sha-256改为trust):

vi /opt/KingbaseES_V8R6_Lin64_install/V8/data/sys_hba.conf
host    all             all             0.0.0.0/0               trust

DBeaver

2022-05-08-DBeaverDriver1.jpg

2022-05-08-DBeaverDriver2.jpg

2022-05-08-DBeaverJDBC.jpg

IDEA

2022-05-08-IDEADriver.jpg

2022-05-08-IDEAJDBC.jpg


If you have any questions or any bugs are found, please feel free to contact me.

Your comments and suggestions are welcome!


「说点什么吧😊~~😊」: