全栈自主可控:基于openEuler的国产KWDB数据库容器化部署实战
全栈自主可控:基于openEuler的国产KWDB数据库容器化部署实战
前言
在数字经济与信创战略的双重驱动下,基于 openEuler 操作系统部署国产 KaiwuDB 数据库,标志着我国在核心基础软件领域实现了从底层内核到上层应用的全栈自主可控。本次实战将深入演示如何利用容器化技术,在 openEuler 坚实底座上快速构建支持 AIoT 场景、融合时序与关系数据的高性能 KaiwuDB 运行环境。通过全流程的部署演练,我们旨在验证国产数据库在复杂工业场景下的卓越稳定性与多模数据处理能力,打破国外技术垄断并树立行业新标杆。让我们共同开启这段探索国产科技力量的旅程,见证中国数据库技术在万物互联时代的崛起与辉煌。
一、初识KWDB数据库
1.1 KWDB简介
KWDB (KaiwuDB)是一款面向 AIoT 场景的分布式、多模融合的数据库产品, 支持同一实例同时建立时序库和关系库并融合处理多模数据,具备时序数据高效处理能力,具有稳定安全、高可用、易运维等特点。面向工业物联网、数字能源、车联网、智慧产业等领域,KWDB 提供一站式数据存储、管理与分析的基座。
- KWDB社区官网:https://www.kaiwudb.com/kaiwudb/

1.2 产品架构
KWDB 数据库架构分为接口连接层、计算层和存储层三个部分,以下是 KWDB 数据库架构功能概览:

| 架构层级 | 功能模块/组件 | 核心功能与技术特性描述 |
|---|---|---|
| 接口连接层 | 标准化接口协议 | • 支持 JDBC、ODBC、RESTful API 等多种协议• 确保与各类应用程序、开发工具及生态系统的良好兼容 |
| 计算层 | SQL 执行引擎 | • 提供完整 SQL 处理流程:协议解析 → 多模 SQL 解析器 → 多模 SQL 优化器 → 多模 SQL 执行器• 支持时序数据与关系数据的统一查询处理 |
| 监控管理模块 | • 全方位监控:会话、内存、线程、消息、心跳管理• 可观测性:性能指标采集、日志跟踪 | |
| 核心服务组件 | • 元数据管理:维护数据库对象定义• 事务管理:保障数据一致性• 作业管理:调度后台任务• 安全管理:权限控制与审计 | |
| 增值服务 | • 数据优化:实时压缩、生命周期管理 (TTL)• 功能增强:特色内置函数、系统任务、WAL (预写日志) | |
| 多引擎融合 | • 融合多种计算引擎,根据数据模型特征自动选择最优存储计算模式• 对外提供统一接口,提升复杂分析查询效率 | |
| 自适应时序引擎 | • 高性能:百万级数据秒级写入,亿级数据秒级读取• 高压缩:提供 5-30 倍实时压缩能力,支持压缩态直接查询无需解压• 强分析:支持时序特色复杂查询及多维聚合 | |
| 事务处理引擎 | • 并发控制:支持分布式事务与 MVCC (多版本并发控制)• 关系型特性:完整支持注释、视图、约束、索引、序列、存储过程、触发器 | |
| 存储层 | 时序存储引擎 | • 专为时序数据优化的底层存储结构• 实现高效的时间序列数据写入、压缩与检索 |
| 关系存储引擎 | • 基于传统关系模型构建• 完整支持 ACID 事务特性,保障数据可靠性 |
二、环境介绍
2.1 本次实践说明
本次实践旨在测试环境中通过单节点容器化方式快速部署 KWDB 数据库,供功能验证与学习使用(注意:生产环境部署需结合高可用架构与安全策略进行专项规划,请勿直接沿用此方案);实验基础环境选定为 openEuler 24.03 (LTS) 操作系统,搭配 KaiwuDB 3.1.0 版本,以确保在稳定的长期支持系统上体验该版本的最新特性。
2.2 部署环境要求
- 硬件规格要求
| 项目 | 要求详情 |
|---|---|
| CPU 和内存 | - 单节点建议:不低于 4 核 8G。 - 高性能场景:对于数据量大、复杂工作负载、高并发场景,建议配置更高的 CPU 和内存资源。 |
| 磁盘 | - 类型推荐:推荐使用 SSD 或 NVMe;尽量避免使用 NFS、CIFS、CEPH 等共享存储。 - 性能指标:必须实现 500 IOPS 和 30 MB/s 的处理效率。 - HDD 注意事项:使用 HDD 部署单机版时,需避免设备数过多或每秒写入测点数过高,否则性能会显著下降。 - 容量规划:系统自身启动占用低于 1G,实际大小取决于业务量。 |
| 文件系统 | 建议使用 ext4 文件系统。 |
- 操作系统支持列表 (容器部署)
前提说明:目标机器需已安装 Docker。若未安装,请提前安装Docker。
| 操作系统 | 版本 | ARM_64 支持 | x86_64 支持 |
|---|---|---|---|
| Anolis | 7 | ✓ | ✓ |
| 8 | ✓ | ✓ | |
| CentOS | 7 | ✓ | |
| 8 | ✓ | ||
| Debian | V11 | ✓ | |
| openEuler | 24.03 | ✓ | |
| Ubuntu | V20.04 | ✓ | ✓ |
| V22.04 | ✓ | ✓ | |
| V24.04 | ✓ | ✓ | |
| UOS | 1050e | ✓ | ✓ |
| 1060e | ✓ | ✓ | |
| 1070e | ✓ | ✓ | |
| Windows Server | WSL2 | ✓ |
注:未在上述列表中提及的操作系统版本也许可以运行 KWDB,但尚未得到官方支持。
2.3 本地环境规划
本次实践为个人测试环境,操作系统版本为
openEuler 24.03 (LTS)。
| hostname | IP地址 | 操作系统版本 | Docker版本 | 部署项目 |
|---|---|---|---|---|
| openEuler001 | 192.168.3.83 | openEuler 24.03 (LTS) | 26.1.3 | KWDB数据库,版本V3.1.0 |
2.4 本地环境检查
- 检查操作系统版本
[root@openEuler001 ~]# cat /etc/os-release
NAME="openEuler"
VERSION="24.03 (LTS)"
ID="openEuler"
VERSION_ID="24.03"
PRETTY_NAME="openEuler 24.03 (LTS)"
ANSI_COLOR="0;31"
- 检查内存和磁盘大小
[root@openEuler001 ~]# free -h
total used free shared buff/cache available
Mem: 3.3Gi 988Mi 652Mi 132Mi 2.1Gi 2.4Gi
Swap: 4.0Gi 168Mi 3.8Gi
[root@openEuler001 ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
sda 8:0 0 500G 0 disk
├─sda1 8:1 0 1M 0 part
├─sda2 8:2 0 1G 0 part /boot
└─sda3 8:3 0 499G 0 part
├─openeuler-root 253:0 0 70G 0 lvm /
├─openeuler-swap 253:1 0 4G 0 lvm [SWAP]
└─openeuler-home 253:2 0 425G 0 lvm /home
sr0 11:0 1 1024M 0 rom
三、部署Docker环境
3.1 更新系统并安装依赖
安装 Docker 请使用 root 用户或拥有 sudo 权限的用户执行命令,本次实践采用全新环境并以 root 账号操作,先将系统软件包更新至最新状态,再安装 Docker 所需工具。
- 更新系统软件包
dnf update -y --exclude=kernel* --exclude=kernel-modules* --exclude=kernel-core*

- 安装相关依赖工具
dnf install -y device-mapper-persistent-data lvm2

3.2 配置 Docker 官方仓库
- 添加 Docker 官方仓库
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
sed -i 's/$releasever/8/g' /etc/yum.repos.d/docker-ce.repo
sed -i 's+https://download.docker.com+https://mirrors.aliyun.com/docker-ce+' /etc/yum.repos.d/docker-ce.repo
3.3 安装Docker
执行以下命令,更新仓库缓存。
dnf makecache
安装 Docker 所需的组件,包括守护进程、命令行工具和插件。
dnf install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

- 验证Docker安装版本,
[root@openEuler001 ~]# docker --version
Docker version 26.1.3, build b72abbb
3.4 启动 Docker服务
安装完成后,需要启动 Docker 守护进程并设置开机自动运行。
- 启动 Docker 服务
systemctl start docker
- 设置 Docker 开机自启
systemctl enable docker
- 检查 Docker 状态,确保是 active (running)
systemctl status docker

3.5 配置镜像加速器
在国内拉取 Docker Hub 的镜像通常很慢,配置一个加速器可以显著提升速度。我们可以添加华为云个人账号下的镜像服务加速地址,确保后续可以成功拉取Docker镜像。
mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json > /dev/null <<EOF
{
"registry-mirrors": ["https://80c84f5330e14908928ca78944e61dc4.mirror.swr.myhuaweicloud.com"]
}
EOF
执行以下命令,重启Docker服务。
systemctl restart docker
3.6 检查Docker安装信息
检查Docker版本,可以看到当前安装的版本为
26.1.3。
[root@openEuler001 ~]# docker version
Client: Docker Engine - Community
Version: 26.1.3
API version: 1.45
Go version: go1.21.10
Git commit: b72abbb
Built: Thu May 16 08:34:39 2024
OS/Arch: linux/amd64
Context: default
Server: Docker Engine - Community
Engine:
Version: 26.1.3
API version: 1.45 (minimum version 1.24)
Go version: go1.21.10
Git commit: 8e96db1
Built: Thu May 16 08:33:34 2024
OS/Arch: linux/amd64
Experimental: false
containerd:
Version: 1.6.32
GitCommit: 8b3b7ca2e5ce38e8f31a34f35b2b68ceb8470d89
runc:
Version: 1.1.12
GitCommit: v1.1.12-0-g51d5e94
docker-init:
Version: 0.19.0
GitCommit: de40ad0
检查Docker compose版本,当前安装版本为
v2.27.0。
[root@openEuler001 ~]# docker compose version
Docker Compose version v2.27.0
四、部署前准备工作
4.1 下载KWDB容器镜像
执行以下命令,拉取KWDB容器镜像。本次实践所使用的KWDB镜像为
kwdb/kwdb:3.1.0。
docker pull kwdb/kwdb:3.1.0

4.2 创建部署目录
拉取KWDB镜像成功后,我们创建以下kwdb部署目录。
mkdir -p /data/kwdb && cd /data/kwdb/
五、部署KWDB数据库(非安全模式)
5.1 创建KWDB容器
使用docker run命令方式部署,可参考以下:
docker run -d --privileged --name kwdb \
--ulimit memlock=-1 \
--ulimit nofile=65535s \
-p 26257 :26257 \
-p 8080:8080 \
-v /var/lib/kaiwudb:/kaiwudb/deploy/kwdb-container \
--ipc shareable \
-w /kaiwudb/bin \
kwdb/kwdb:3.1.0 \
./kwbase start-single-node \
--insecure \
--listen-addr=0.0.0.0:26257 \
--http-addr=0.0.0.0:8080 \
--store=/kaiwudb/deploy/kwdb-container
我们本次实践使用 Docker Compose和YAML配置文件部署,目前只支持非安全部署模式。
version: '3.3'
services:
kwdb-container:
image: "kwdb/kwdb:3.1.0"
container_name: kaiwudb-experience
hostname: kaiwudb-experience
ports:
- 8080:8080
- 26257:26257
ulimits:
memlock: -1
networks:
- default
restart: on-failure
ipc: shareable
privileged: true
environment:
- LD_LIBRARY_PATH=/kaiwudb/lib
tty: true
working_dir: /kaiwudb/bin
volumes:
- ./kwdb_data:/kaiwudb/deploy/kaiwudb
command:
- /bin/bash
- -c
- |
/kaiwudb/bin/kwbase start-single-node --insecure --listen-addr=0.0.0.0:26257 --advertise-addr=127.0.0.1:26257 --http-addr=0.0.0.0:8080 --store=/kaiwudb/deploy/kaiwudb
- 部署文件相关参数解释
| 配置项 (Key) | 值/内容 (Value) | 含义与作用解析 |
|---|---|---|
| version | '3.3' | Docker Compose 文件格式版本,支持较新的功能特性。 |
| image | kwdb/kwdb:3.1.0 | 指定使用的 Docker 镜像及其版本号 (3.1.0)。 |
| container_name | kaiwudb-experience | 自定义容器名称,方便通过 docker stop/start 命令管理。 |
| hostname | kaiwudb-experience | 设置容器内部的主机名,用于集群内部通信标识。 |
| ports | 8080:8080``26257:26257 | 端口映射:• 8080: DB Console (Web 管理界面)• 26257: SQL 协议端口 (客户端连接) |
| ulimits | memlock: -1 | 内存锁定:设置为无限 (-1),防止数据库内存被交换到磁盘 (Swap),保证性能。 |
| privileged | true | 特权模式:赋予容器几乎所有的宿主机权限,通常用于需要修改内核参数或访问硬件的场景。 |
| ipc | shareable | 进程间通信:允许其他容器共享该容器的 IPC 命名空间,常用于高性能数据库共享内存。 |
| restart | on-failure | 重启策略:仅在容器因错误退出时自动重启,正常退出不重启。 |
| environment | LD_LIBRARY_PATH=... | 设置环境变量,指定动态链接库的查找路径,确保程序能加载 KWDB 的库文件。 |
| working_dir | /kaiwudb/bin | 设置容器内的工作目录,后续命令将在此目录下执行。 |
| tty | true | 分配一个伪终端,通常与交互式 shell 配合使用。 |
| volumes | ./kwdb_data:/kaiwudb/deploy/kaiwudb | 数据持久化挂载(关键配置):• 宿主机路径: ./kwdb_data(当前目录下的文件夹)• 容器路径: /kaiwudb/deploy/kaiwudb(数据库存储目录)• 作用: 将数据库产生的数据文件实时同步到宿主机。即使容器被删除或重建,数据也不会丢失。若不配置此项,容器删除即代表数据永久丢失。 |
| command | (启动脚本) | 覆盖镜像默认命令,以非安全模式启动单节点数据库服务。 |
启动命令 (command) 配置中的 command 部分通过 /bin/bash -c 执行了一段多行脚本,核心是启动 KWDB 的单节点模式。具体参数含义如下:
| 参数 flag | 值 | 解释 |
|---|---|---|
start-single-node | - | 指示以单节点模式启动,无需复杂的集群初始化过程。 |
--insecure | - | 非安全模式:禁用 TLS 加密和客户端证书认证。注意:仅适用于本地开发或受信任的内网环境,生产环境严禁使用。 |
--listen-addr | 0.0.0.0:26257 | 监听地址。0.0.0.0 表示监听容器内的所有网络接口,允许外部通过映射端口访问。 |
--advertise-addr | 127.0.0.1:26257 | 广播地址。告诉其他节点(如果有)或客户端如何连接此节点。此处设为本地回环,通常在单机测试时使用。 |
--http-addr | 0.0.0.0:8080 | Web 管理界面监听地址。0.0.0.0 允许外部浏览器访问 DB Console。 |
--store | /kaiwudb/deploy/kaiwudb | 数据存储路径。数据库文件将保存在容器内的该目录。⚠️ 重要提示:当前配置未挂载宿主机卷 (volumes),这意味着容器删除后数据将丢失。若需持久化,建议添加 - ./data:/kaiwudb/deploy/kaiwudb 到 volumes 字段。 |
执行
docker compose up -d命令,运行启动KWDB容器
[root@openEuler001 kwdb]# docker compose up -d
WARN[0000] /data/kwdb/docker-compose.yaml: `version` is obsolete
[+] Running 2/2
? Network kwdb_default Created 0.1s
? Container kaiwudb-experience Started 0.3s

5.2 检查KWDB容器状态
- 检查KWDB容器状态,确保容器正常启动。
[root@openEuler001 kwdb]# docker compose ps
WARN[0000] /data/kwdb/docker-compose.yaml: `version` is obsolete
NAME IMAGE COMMAND SERVICE CREATED STATUS PORTS
kaiwudb-experience kwdb/kwdb:3.1.0 "/bin/bash -c '/kaiw…" kwdb-container 39 seconds ago Up 38 seconds 0.0.0.0:8080->8080/tcp, :::8080->8080/tcp, 0.0.0.0:26257->26257/tcp, :::26257->26257/tcp

5.3 检查KWDB容器日志
我们通过查看 KWDB 容器日志,可确认单节点 KWDB 容器已部署成功,服务正常运行。

5.4 访问本地KWDB数据库
我们使用 KaiwuDB 自带的命令行工具 kwbase 连接数据库,该工具支持安全模式(生产环境)与非安全模式(测试环境),方便用户进行数据库操作与维护。非安全模式下,KaiwuDB 允许任意用户免密登录,一般仅用于本地开发与测试场景。我们通过执行以下命令,可快速连接本地KWDB数据库。
docker exec -it kaiwudb-experience ./kwbase sql --insecure --host=127.0.0.1

5.5 普通用户访问KWDB
当我们进入KWDB数据库后,可以创建新用户jeven。
CREATE USER jeven;
执行以下命令,查询刚新建的zhangsan用户。
show users;

退出数据库连接后,使用刚才创建的jeven普通用户,在非安全模式下再次免密登录KWDB数据库。
docker exec -it kaiwudb-experience ./kwbase sql --insecure --host=127.0.0.1 -u jeven

六、部署KWDB数据库(安全模式)
6.1 停止容器
为避免对后续部署造成影响,可先执行以下命令停止并删除已创建的 KWDB 容器,以便重新搭建安全模式的 KWDB 容器。
docker compose down

6.2 创建证书文件
在以 TLS 安全模式部署KaiwuDB)时,需先通过命令创建 CA 证书、root 用户客户端证书及节点服务器证书,用于身份验证与加密通信,这是安全部署的基础。创建节点证书时,请将命令中的示例 IP 替换为服务器实际 IP,以确保生成有效的服务器证书。
docker run --rm --privileged \
-v /data/kwdb/certs:/kaiwudb/certs \
-w /kaiwudb/bin \
kwdb/kwdb:3.1.0 \
bash -c './kwbase cert create-ca --certs-dir=/kaiwudb/certs --ca-key=/kaiwudb/certs/ca.key && \
./kwbase cert create-client root --certs-dir=/kaiwudb/certs --ca-key=/kaiwudb/certs/ca.key && \
./kwbase cert create-node 127.0.0.1 localhost 0.0.0.0 192.168.3.83 --certs-dir=/kaiwudb/certs --ca-key=/kaiwudb/certs/ca.key'

生成相关证书文件后,我们可以查看证书目录:
[root@openEuler001 kwdb]# ls certs/
ca.crt ca.key client.root.crt client.root.key node.crt node.key
6.3 创建KWDB容器
基于TLS安全模式,创建并启动 KWDB 容器。
docker run -d --privileged --name kwdb \
--ulimit memlock=-1 \
--ulimit nofile=65535 \
-p 26257:26257 \
-p 8080:8080 \
-v /data/kwdb/certs:/kaiwudb/certs \
-v /data/kwdb/db:/kaiwudb/deploy/kaiwudb-container \
--ipc shareable \
-w /kaiwudb/bin \
kwdb/kwdb:3.1.0 \
./kwbase start-single-node \
--certs-dir=/kaiwudb/certs \
--listen-addr=0.0.0.0:26257 \
--http-addr=0.0.0.0:8080 \
--store=/kaiwudb/deploy/kaiwudb-container

6.4 查看KWDB容器状态
查询KWDB容器状态,确保KWDB容器创建成功。
[root@openEuler001 kwdb]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
31199bc6bb1a kwdb/kwdb:3.1.0 "./kwbase start-sing…" 28 seconds ago Up 27 seconds 0.0.0.0:8080->8080/tcp, :::8080->8080/tcp, 0.0.0.0:26257->26257/tcp, :::26257->26257/tcp kwdb

6.5 查看 KWDB容器日志
查看KWDB容器日志,确认数据库服务正常运行。
[root@openEuler001 kwdb]# docker logs kwdb
*
* INFO: Replication was disabled for this cluster.
* When/if adding nodes in the future, update zone configurations to increase the replication factor.
*
KWDB node starting at 2026-03-07 14:52:07.889693583 +0000 UTC (took 0.8s)
build: 3.1.0 @ 2026/02/02 10:31:37 (go1.21.13)
sql: postgresql://root@0.0.0.0:26257?sslcert=%2Fkaiwudb%2Fcerts%2Fclient.root.crt&sslkey=%2Fkaiwudb%2Fcerts%2Fclient.root.key&sslmode=verify-full&sslrootcert=%2Fkaiwudb%2Fcerts%2Fca.crt
RPC client flags: ./kwbase <client cmd> --host=0.0.0.0:26257 --certs-dir=/kaiwudb/certs
logs: /kaiwudb/deploy/kaiwudb-container/logs
temp dir: /kaiwudb/deploy/kaiwudb-container/kwbase-temp4289006900
external I/O path: /kaiwudb/deploy/kaiwudb-container/extern
store[0]: path=/kaiwudb/deploy/kaiwudb-container
storage engine: rocksdb
ts storage engine: kwtsdb
status: initialized new cluster
clusterID: b68571f3-d19f-468d-9590-2997f3174d44
nodeID: 1

6.6 访问KWDB数据库
在 TLS 安全模式下,通过容器内的kwbase工具本地连接 KaiwuDB,依靠证书完成身份认证,无需账号密码即可安全访问数据库;其中–host后的 IP 地址请替换为自身服务器的实际 IP。
docker exec -it kwdb ./kwbase sql --certs-dir=/kaiwudb/certs --host=192.168.3.83

七、KWDB基本操作
7.1 创建用户和密码
创建用户jeven,设置密码为admin123456,并赋予管理员权限(角色为 admin)。
CREATE USER jeven WITH PASSWORD 'admin123456';
GRANT admin TO jeven;

7.2 查询用户
查询刚才查询新建的jeven用户,我们有2种方法进行查询,如下所示:
方法一:
SELECT * FROM system.users;

方法二:
root@192.168.3.83:26257/defaultdb> SHOW USERS;
username | options | member_of
-----------+------------+------------
admin | CREATEROLE | {}
jeven | | {admin}
root | CREATEROLE | {admin}
(3 rows)
Time: 3.272082ms

7.3 使用新用户连接KWDB
退出当前的 KWDB 数据库会话,使用jeven账号和密码进行验证重新连接 KWDB 数据库。
docker exec -it kwdb ./kwbase sql --certs-dir=/kaiwudb/certs --host=192.168.3.83 -u jeven

7.4 关系数据库管理
KWDB 同时支持关系数据与时序数据管理,本次实践仅对关系数据库进行基础操作,更详细的语法说明可参考官方社区帮助文档。
- 创建测试数据库:创建一个名为 school 的关系数据库,并添加注释说明用途。
jeven@192.168.3.83:26257/defaultdb> CREATE DATABASE school COMMENT = 'Test database for student management';
CREATE DATABASE
Time: 11.440549ms

- 切换至目标数据库: 在进行表操作前,我们需要先切换到 school 数据库。
jeven@192.168.3.83:26257/defaultdb> USE school;
SET
Time: 670.206µs

- 创建测试数据表 (student): 根据需求,创建 student 表。
CREATE TABLE student (
id INT PRIMARY KEY,
name VARCHAR(50) NOT NULL,
gender VARCHAR(10) CHECK (gender IN ('Male', 'Female')),
class_name VARCHAR(50),
age INT,
enrollment_date DATE
);

- 插入测试数据:我们向 student 表中插入几条模拟数据。
INSERT INTO student (id, name, gender, class_name, age, enrollment_date) VALUES
(1001, '张三', 'Male', '三年二班', 18, '2023-09-01'),
(1002, '李四', 'Female', '三年二班', 17, '2023-09-01'),
(1003, '王五', 'Male', '三年一班', 18, '2023-09-01'),
(1004, '赵六', 'Female', '三年一班', 17, '2023-09-01');

- 查询验证数据:执行查询语句,查询所有学生信息,确认数据已正确写入。
jeven@192.168.3.83:26257/school> SELECT * FROM student;
id | name | gender | class_name | age | enrollment_date
-------+------+--------+------------+-----+----------------------------
1001 | 张三 | Male | 三年二班 | 18 | 2023-09-01 00:00:00+00:00
1002 | 李四 | Female | 三年二班 | 17 | 2023-09-01 00:00:00+00:00
1003 | 王五 | Male | 三年一班 | 18 | 2023-09-01 00:00:00+00:00
1004 | 赵六 | Female | 三年一班 | 17 | 2023-09-01 00:00:00+00:00
(4 rows)
Time: 1.01914ms

八、访问KWDB数据库访问
8.1 使用KaiwuDB开发者中心连接KWDB
8.1.1 安装环境要求
支持的操作系统
说明:不同操作系统版本的界面略有差异,但功能完全相同。
| 操作系统类型 | 版本要求 |
|---|---|
| Windows | Windows 7 及以上 (64 位系统) |
| Linux | 内核 2.6 及以上系统 |
| macOS | Mac 操作系统 (所有支持版本) |
安装环境要求
KaiwuDB 开发者中心的安装需满足以下硬件与软件条件:
| 环境类别 | 项目 | 具体要求 |
|---|---|---|
| 硬件环境 | 内存 (RAM) | 1 GB 及以上 |
| 硬盘 (Storage) | 10 GB 及以上可用空间 | |
| 软件环境 | KWDB 版本 | 2.0 及以上版本 |
| Java 运行环境 | OpenJRE 8 及以上版本 |
8.1.2 安装KaiwuDB 开发者中心
KaiwuDB 开发者中心下载地址:https://gitee.com/kwdb/kwdb/releases/tag/V3.1.0

下载后解压软件包,直接双击KaiwuDB Developer Center.exe,即可运行 KaiwuDB 开发者中心应用程序。


8.1.3 连接 KWDB 数据库
在创建新连接窗口中,选择 KaiwuDB 驱动,然后单击 下一步 按钮以继续。

KaiwuDB 连接设置:
主机名称:192.168.3.83(本机IP),端口默认26257;数据库:defaultdb;用户:新创建的用户jeven;密码:自己设置的密码;确认连接:填写完毕后,点击“完成”确认即可。备注:确认连接前,可单击测试链接,检查连接是否成功。

连接成功,进入KWDB数据库,如下所示:

在菜单栏依次点击SQL编辑器—SQL编辑器,在SQL编辑器内输入查询语句进行查询。
SELECT * FROM student;

8.2 使用KaiwuDB JDBC连接 KWDB
- 在项目的
pom.xml文件中添加如下依赖,引入KaiwuDB JDBC驱动:
<dependency>
<groupId>com.kaiwudb</groupId>
<artifactId>kaiwudb-jdbc</artifactId>
<version>3.1.0</version>
</dependency>
- 通过以下代码实现KWDB数据库的连接:
public Connection getConnection() throws Exception{
Class.forName("com.kaiwudb.Driver");
Connection conn = DriverManager.getConnection("jdbc:kaiwudb://127.0.0.1:26257/defaultdb?user=kwdbuser&password=123");
return conn;
}
- 连接KWDB的核心步骤为:先在
pom.xml引入JDBC依赖,再通过驱动类和连接串建立数据库连接; - 连接串中需替换
127.0.0.1、kwdbuser、123为实际的服务器IP、用户名和密码。 - 更多详情可参考KWDB社区帮助文档。
8.3 使用kwbase CLI 工具连接 KWDB
在前序步骤中,我们已初步接触了 kwbase 工具。kwbase 是 KWDB 官方提供的命令行接口(CLI)工具,专为数据库管理员和开发人员设计。通过该工具,用户可以便捷地连接至 KWDB 集群,执行 SQL 查询、管理数据库对象以及进行日常运维操作。
我们可以使用以下命令通过 Docker 容器内的 kwbase 客户端,以用户 jeven 的身份连接至指定的 KWDB 节点(需确保证书目录正确配置):
docker exec -it kwdb ./kwbase sql --certs-dir=/kaiwudb/certs --host=192.168.3.83 -u jeven

九、实践总结
本次实战成功验证了“openEuler + KaiwuDB”纯国产技术栈的成熟度,证明了其在容器化部署、安全认证及多工具链协同方面的卓越表现。KaiwuDB 凭借其在时序数据处理上的原生架构优势,结合 openEuler 的内核级优化,展现了媲美甚至超越国际同类产品的性能与稳定性。从非安全模式的快速启动到安全模式的证书体系构建,全流程的顺畅体验彰显了国产数据库日益完善的生态友好性与开发者关怀。这一成果不仅为关键行业的数字化转型提供了可信、可控的坚实底座,更标志着我国数据库产业已具备引领全球技术创新的实力。
更多推荐
所有评论(0)