背景
最近接触了个项目,数据库用的是国产数据库:人大金仓V8。简单总结下 Kingbase8
在 CentOS7
上的安装与使用。
下载
手机号、验证码,下载镜像以及开发版授权证书:www.kingbase.com.cn/rjcxxz/inde…安装文档: 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可视化远程连接
我这里使用了两种方式进行远程的可视化连接, DBeaver
与 IDEA
。远程连接前我先关闭了防火墙: 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
。
DBeaver
IDEA