文章目录
引言
在今天的数字世界里🌍,数据就像水💧和电⚡一样重要——无论是网购🛒、扫码支付💳,还是刷短视频🎵,每分每秒都在产生海量数据。而数据库,就是存放和管理这些数据的"超级仓库"🏗️,它决定了:
- 你双11抢购时页面会不会卡死🐌
- 健康码能不能秒显示你的核酸结果🟢
- 银行转账时数字会不会出错💸
但你知道吗❓我国很多核心系统还在用国外数据库,就像把家门钥匙🔑交给别人保管!近年来,国产数据库飞速崛起🚀,其中KingbaseES金仓数据库就是佼佼者——它既有国际水准的性能🏆,又具备自主可控的"中国芯"🇨🇳,正在政务、金融、能源等领域大显身手💪。
本文将手把手教你从安装到玩转这款"国产数据库黑马"🐎,让你轻松掌握这项关键技能🔧! (下文开始正式教程👇)
一、KingbaseES简介
KingbaseES是面向全行业的企业级大型通用数据库管理系统,其最新版本(如V9)在可靠性、可用性、性能和兼容性等方面有显著改进:
- 高度容错:通过数据备份、恢复、同步复制等技术确保99.999%的系统可用性3
- 应用迁移友好:兼容主流数据库语法(如Oracle、SQL Server、MySQL)
- 性能强劲:支持并行计算、索引覆盖等技术应对高并发
- 管理工具完善:提供KStudio等可视化工具降低使用门槛
二、安装前准备
2.1 硬件要求
KingbaseES支持多种硬件架构:
- X86/X86_64
- 国产CPU(龙芯、飞腾、鲲鹏等)18
- 内存:512MB以上(标准版)
- 硬盘:10GB以上空闲空间8
2.2 软件环境
- Linux:支持主流Linux发行版的32/64位版本1
- Windows:支持Windows 7及以上版本8
- JDK:需要jdk1.8及以上环境1
2.3 创建专用用户(Linux)
为避免权限问题,建议创建专用用户:
useradd kingbase
chown -R kingbase:kingbase /home/kingbase/KingbaseES/V8 # 授权安装目录
2.4 目录准备
# 创建安装目录
mkdir -p /home/kingbase/V8R6/db
# 创建数据目录(建议独立磁盘)
mkdir -p /home/kingbase/V8R6/db/data
chown -R kingbase.kingbase /home/kingbase/V8R6/db
三、安装KingbaseES
3.1 获取安装包
可从官网下载ISO镜像文件
3.2 静默安装(Linux)
静默安装需准备install.properties
配置文件:
# 安装集选择
CHOSEN_FEATURE_LIST=SERVER,CLUSTER,JDBC,ODBC,REPLICA,DEPLOY,CONSOLE,HELP,MANAGER,DTS
CHOSEN_INSTALL_SET=Full
# 安装路径
USER_INSTALL_DIR=/home/kingbase/V8R6/db
# 文件覆盖设置
-fileOverwrite_/home/kingbase/V8R6/db/Uninstall/Uninstaller.lax=是
...
执行安装命令:
sh setup.sh -f install.properties
3.3 图形化安装
这里也是我们最擅长的安装方式,可视化界面嘛,手到擒来哈哈哈哈哈
Linux图形化安装
sh setup.sh # 或 sh setup.sh -i swing
安装步骤包括:
- 选择安装模式(完全/客户端/定制)
- 接受许可协议
- 指定安装路径(默认/opt/Kingbase/ES/V8)
- 选择授权文件
- 完成安装
Windows安装
我这里是选择windows安装,下面我将详细展示安装全流程:
下载完了后,我们双击打卡,将下面三个文件提取出来
以管理员身份运行KINGBASE.EXE
,选择中文/英文界面
接下来默认即可
选择"完全安装"
然后默认即可,接下来来到指定安装路径(默认C:\Program Files\Kingbase\ES\V8),然后安装即可
四、数据库初始化
安装后需初始化数据库实例,关键配置项:
- 数据库名
- 系统管理员密码(SYSTEM用户)
- 字符集(推荐UTF8)
- 兼容模式(Oracle/MySQL等)——这里我们选择MySQL
- 大小写敏感设置——选NO
- 存储块大小(通常8K)
这样就完成了数据库的初始化
五、体验并实操KStudio管理工具
接下来我们打开管理工具,如下图
5.1 创建连接
第一步自然是连接数据库了,用过Navicat等管理工具的应该都熟悉
接下来我们简单的输入数据库名密码等信息,点击完成
上面所展示的就代表了,连接成功了
5.2 创建数据库
点击上面的新建查询,接下来我们就可以在文件里创建了
下面是创建数据库的代码
CREATE DATABASE testdb WITH OWNER = system ENCODING 'UTF8'
TABLESPACE = sys_default
CONNECTION_LIMIT = -1;
刷新一下就可以在下面看到了新创建的数据库了,接下来我们在这里面进行操作
5.3 创建表
创建表的代码如下
CREATE TABLE employees (
id INTEGER PRIMARY KEY,
name VARCHAR(100),
department VARCHAR(50),
salary NUMERIC(10,2)
);
创建完的表如下图
5.4 简单的数据操作
接下来我们进行简单数据操作,其实也就是我们熟知的增删改查
-- 插入数据
INSERT INTO employees VALUES (1, '张三', '研发部', 15000.00);
-- 查询
SELECT * FROM employees WHERE salary > 10000;
-- 更新
UPDATE employees SET salary = 16000.00 WHERE id = 1;
-- 删除
DELETE FROM employees WHERE id = 1;
操作后的界面如下图
这时候,如果我们再执行下面的语句,还能查到么
六、用户与权限管理
KingbaseES采用三权分立管理体系:
- 系统管理员(SYSTEM):日常管理
- 安全管理员(SSO):访问控制
- 审计管理员(SAO):审计监督
6.1 用户管理
创建用户
CREATE USER dev_user WITH PASSWORD 'dev123';
ALTER USER dev_user LOGIN; # 授予登录权限
删除用户
DROP USER dev_user;
6.2 权限控制
-- 授予表权限
GRANT SELECT, INSERT ON employees TO dev_user;
-- 撤销权限
REVOKE INSERT ON employees FROM dev_user;
七、JSON功能示例
这里要重点说一下KingbaseES支持JSON和JSONB类型:
可能大部分人使用数据库的时候,不怎么接触到,这里我说明一下json对于数据库的重要性,这里我通俗一点说明:JSON功能对现代数据库来说,就像给传统老管家装了个智能大脑——让死板的关系型数据库突然能灵活处理各种"不规则"数据了。下面我总结了三点…
- 对付"不听话"的数据格式
以前数据库只认规规矩矩的表格数据,但现实中有很多"不按套路出牌"的数据:
- 电商商品的不同规格参数(有的手机有10个参数,有的电视只有5个)
- APP用户行为日志(每个用户的操作轨迹都不一样长)
- 物联网设备上报数据(不同传感器传的字段可能完全不同)
就像用Excel记流水账突然遇到了一堆手写便签,JSON功能就是让数据库能直接存这些"便签"还不乱套。
- 开发效率暴增
- 前端传过来的数据经常是JSON格式(比如axios请求),现在数据库能直接吃现成的,不用再拆解重组
- 移动端APP、小程序开发时,一个JSON字段能存整个用户配置文档
- 快速原型开发阶段,不用先设计几十个字段的表结构就能开工
相当于做饭不用先切好所有菜,直接把配菜包扔锅里也能煮。
- 查询骚操作
虽然存的是JSON,但查询时却能当正规军使:
-- 查JSON里嵌套的值(比如用户地址里的城市)
SELECT user_profile->'address'->>'city' FROM users;
-- 检查是否包含某个键(比如是否有VIP标记)
SELECT * FROM products WHERE specs ? 'warranty_years';
-- 直接修改JSON里的某个字段(不用整条重写)
UPDATE orders SET extra_info = jsonb_set(extra_info, '{coupon_code}', '"DISCOUNT20"')
就像能在压缩包里直接修改文件,不用解压-修改-重新打包。
- 兼容新旧系统
- 老系统用关系型表结构,新功能用JSON字段,和平共处不打架
- 逐步改造时,可以先把某个字段改成JSON类型,其他代码几乎不用改
- 和MongoDB等NoSQL数据库对接时,数据格式说同一种语言
- 性能也不差
KingbaseES的JSONB是二进制格式:
- 比普通JSON更省空间
- 支持GIN索引(查JSON里的内容也能飞起来)
- 部分更新时不用重写整个文档
相当于既保留了便签的灵活性,又给了它文件柜的整理能力。
下面是一段简单创建示例代码
-- 创建JSON表
CREATE TABLE json_data (
id INTEGER,
content JSONB
);
-- 插入JSON数据
INSERT INTO json_data VALUES (1,
'{"name": "李四", "age": 30, "skills": ["Java", "Python"]}');
-- JSON查询
SELECT content->>'name' AS name FROM json_data WHERE id = 1;
执行结果如下图
八、总结
KingbaseES这个国产数据库用起来就像找了个"万能翻译官💬"——既能把国外数据库那套玩得转,又自带中国特色技能包。它最厉害的地方在于特别会"装熟人",Oracle、MySQL这些国外数据库的语法它都听得懂,老系统迁移过来基本不用大改就能跑,很多单位用它做国产化替代,省下的授权费都够发年终奖了。实际用起来你会发现,它既有传统数据库的严谨劲儿,又能用JSON功能处理各种不规矩的数据,比如电商里五花八门的商品参数,存进去像塞便签纸一样随意,查的时候却能当正规表格用。
最后简单总结一下吧📝📝📝
- 国产化替代但怕系统跑不动 ➔ KingbaseES能"以假乱真"
- 处理不规则数据(比如商品参数) ➔ 它的JSON功能比Excel强十倍
- 过等保/分保测评 ➔ 三权分立(系统管理员、安全管理员、审计管理员)设计直接拿满分
如需更详细的技术文档,可参考KingbaseES产品手册或访问金仓官网