原文链接:10分钟快速搞定 KWDB 数据库单节点部署 - 墨天轮
作者:jiayou
KaiwuDB 是浪潮出品的一款面向 AIoT 场景的分布式、多模融合、支持原生 AI 的数据库产品,支持同一实例同时建立时序库和关系库并融合处理多模数据,具备时序数据高效处理能力,具有稳定安全、高可用、易运维等特点。面向工业物联网、数字能源、车联网、智慧产业等领域,KWDB 提供一站式数据存储、管理与分析的基座。长期位居时序数据库排名前二。
KWDB 是 KaiwuDB 的社区版,目前已更新到KWDB 2.2.0 版本。KWDB 2.2.0 版本在保持原有特性的基础上,针对时间精度、数据库对象、DML 操作、数据查询及数据库运维等方面进行了优化与增强。
KWDB 支持使用裸机或容器安装包部署单节点或集群。本文演示麒麟 KYLIN V10 SP3环境下单节点裸机部署KWDB 2.2.0。
KWDB 支持在以下服务器操作系统进行安装部署。
操作系统 | 版本 | 架构 | 容器 | 裸机 |
Anolis | 7 | ARM_64 | √ | - |
7 | x86_64 | √ | - | |
8 | ARM_64 | √ | √ | |
8 | x86_64 | √ | √ | |
CentOS | 7 | x86_64 | √ | - |
8 | x86_64 | √ | - | |
Debian | V11 | ARM_64 | √ | - |
KylinOS | V10 | ARM_64 | √ | √ |
V10 | x86_64 | √ | √ | |
openEuler | 22.03 | x86_64 | √ | - |
Ubuntu | V18.04 | x86_64 | √ | √ |
V20.04 | ARM_64 | √ | √ | |
V20.04 | x86_64 | √ | √ | |
V22.04 | ARM_64 | √ | √ | |
V22.04 | x86_64 | √ | √ | |
V24.04 | ARM_64 | √ | √ | |
V24.04 | x86_64 | √ | √ | |
UOS | V20 | x86_64 | √ | √ |
V20 | ARM_64 | √ | √ |
硬件要求:
项目 | 要求 |
CPU 和内存 | 单节点配置建议不低于 4 核 8G。对于数据量大、复杂的工作负载、高并发和高性能场景,建议配置更高的 CPU 和内存资源以确保系统的高效运行。 |
磁盘 | 推荐使用 SSD 或者 NVMe 设备,尽量避免使用 NFS、CIFS、CEPH 等共享存储。 |
文件系统 | 建议使用 ext4 文件系统。 |
安装时,KWDB 会对依赖进行检查。如果缺少依赖会退出安装并提示依赖缺失。
下表列出需要在目标机器安装的依赖:
依赖 | 版本 | 说明 |
OpenSSL | v1.1.1+ | N/A |
libprotobuf | v3.6.1+ | Ubuntu 18.04 版本默认的 libprotobuf 版本低于所需版本,用户需要在部署前提前安装高版本的 libprotobuf 或者使用安装包内提供的高版本 libprotobuf 完成安装。具体操作说明,参见libprotobuf 安装。 |
geos | v3.3.8+ | 可选依赖 |
xz-libs | v5.2.0+ | N/A |
squashfs-tools | any | N/A |
libgcc | v7.3.0+ | N/A |
mount | any | N/A |
squashfuse | any | 可选依赖 |
下表列出 KWDB 服务需要映射的端口。在安装部署前,确保目标机器的以下端口没有被占用且没有被防火墙拦截。在安装部署时,用户可以修改 deploy.cfg 文件中的端口配置参数。
端口号 | 说明 |
8080 | 数据库 Web 服务端口 |
26257 | 数据库服务端口和对外连接端口 |
部署 KWDB 时,系统将对配置文件、运行环境、硬件配置和软件依赖进行检查。如果相应硬件未能满足要求,系统将继续安装,并提示硬件规格不满足要求。如果软件依赖未能满足要求,系统将中止安装,并提供相应的提示信息。
在部署过程中,系统会自动生成相关日志。如果部署时出现错误,用户可以通过查看终端输出或 KWDB 安装目录中 log 目录里的日志文件,获取详细的错误信息。
部署完成后,系统会将 KWDB 封装成系统服务(名称为 KaiwuDB),并生成以下文件:
本文档采用下载二进制最新版 KWDB 2.2.0介质进行安装。
Gitee 社区下载地址:https://gitee.com/kwdb/kwdb
也可以通过官网社区下载:https://www.kaiwudb.com/community/
首先将获取系统环境对应的 DEB 或 RPM 安装包复制到待安装 KWDB 的目标机器上,然后解压缩安装包:
tar -zxvf KWDB-2.2.0-kylinV10_2403-x86_64-rpms.tar.gz
解压后生成的目录包含以下文件:
文件 | 说明 |
add_user.sh | 安装、启动 KWDB 后,为 KaiwuDB 数据库创建用户。 |
deploy.cfg | 安装部署配置文件,用于配置部署节点的 IP 地址、端口等配置信息。 |
deploy.sh | 安装部署脚本,用于安装、卸载、启动、状态获取、关停和重启等操作。 |
packages 目录 | 存放 DEB、RPM、镜像包和 libprotobuf 包。 |
utils 目录 | 存放工具类脚本。 |
编辑安装包目录下的 deploy.cfg 配置文件,设置安全模式、管理用户、服务端口等信息。默认情况下,deploy.cfg 配置文件中包含集群配置参数。请删除或注释 [cluster] 集群配置项。
vi deploy.cfg
[global] // 全局配置
secure_mode=tls // 是否开启安全模式,默认开启TLS安全模式。开启安全模式后,KaiwuDB 生成 TLS 证书,作为客户端或应用程序连接数据库的凭证。生成的客户端相关证书存放在 /etc/kaiwudb/certs 目录。
management_user= kaiwudb // kaiwudb 的管理用户,默认为 kaiwudb。安装部署后,KaiwuDB 创建相应的管理用户以及和管理用户同名的用户组。
rest_port=8080 // kaiwudb Web 服务端口,默认为 8080。
kaiwudb_port=26257 // kaiwudb 服务端口,默认为 26257
data_root=/var/lib/kaiwuDB // 数据目录,默认为 /var/lib/kaiwuDB
cpu=1 // 指定 KWDB 服务占用当前节点服务器 CPU 资源的比例,默认无限制。取值范围为[0,1]。最大精度为小数点后两位。
encrypto_store=true
[local] // 本地节点配置
node_addr=192.168.126.130
# [cluster] // 集群节点配置,本次单节点配置需要注释掉
# node_addr=your-host-ip, your-host-ip
# ssh_port=22
# ssh_user=admin
chmod +x ./deploy.sh
./deploy.sh install --single
注意:需要根据提示设置数据库密码。
执行成功后,控制台输出以下信息:
[INSTALL COMPLETED]: KaiwuDB has been installed successfully! To start KaiwuDB, please execute the command ‘systemctl daemon-reload’.
根据系统提示重新加载 systemd 守护进程的配置文件。
systemctl daemon-reload
./deploy.sh start
执行成功后,控制台输出以下信息:
START COMPLETED: KaiwuDB has started successfuly.
./deploy.sh status
[STATUS COMPLETED]: KaiwuDB is runnning now.
systemctl status kaiwudb
配置 KWDB 开机自启动后,如果系统重启,则自动启动 KWDB。
systemctl enable kaiwudb
Created symlink /etc/systemd/system/multi-user.target.wants/KWDB.service → /etc/systemd/system/KWDB.service.
# 删除KWDB开机自启动
sudo systemctl disable kaiwudb.service
Removed /etc/systemd/system/multi-user.target.wants/KWDB.service.
执行 add_user.sh 脚本创建数据库用户。如果跳过该步骤,系统将默认使用 root 用户,且无需密码访问数据库。
./add_user.sh
Please enter the username: kaiwudb
Please enter the password:
执行成功后,控制台输出以下信息:
[ADD USER COMPLETED]:User creation completed.
用户可以采取以下任一方式连接 KWDB 服务端并进行 SQL 操作:
kwbase 是 KWDB 提供的内置命令行工具。用户可以通过 kwbase 以安全模式(适用于生产环境)或非安全模式(适用于测试)连接 KWDB,进行数据库操作和维护。
# 用户连接 KWDB。不指定-u,默认root登录。
#非安全模式
kwbase sql --insecure --host= -u user1
#默认TLS安全模式
kwbase sql --host=192.168.126.130 -u kaiwudb --certs-dir=/etc/kaiwudb/certs
用户可以在任何 KWDB 客户端使用 \h 命令查看 KWDB 支持的所有 SQL 语句及相关描述。
也可以使用关键字查看某一类的 SQL 语句。
比如:使用 SHOW 关键字查看 KWDB 支持的所有 SHOW 语句
\h SHOW;
获取系统环境对应的 DEB 或 RPM 安装包,然后解压缩安装包,调用图形化界面连接数据库。
tar -zxvf KaiwuDB_Developer_Center-2.0.4-linux-x86_64.tar.gz
cd KaiwuDB_Developer_Center-linux-x86_64/
export DISPLAY=192.168.126.1:0.0
./‘KaiwuDB Developer Center’
解压KaiwuDB_Developer_Center-2.0.4-win-x86_64.zip。
双击 KaiwuDB Developer Center.exe,创建新连接。
数据库版本查看
select version();
查看数据库用户
SHOW USERS 或 SHOW ROLES 语句用于查询数据库的用户信息。
查看数据库
show databases;
查看已创建数据库的注释信息
SHOW DATABASES WITH COMMENT;
查看数据库的建库语句
SHOW CREATE DATABASE <database_name>;
切换数据库
USE <database_name>;
查看模式
show schemas;
查看查询
SHOW QUERIES 语句用于获取 SQL 语句执行的进度信息。
查看会话
SHOW SESSIONS 语句用于查看当前正在进行的会话的详细信息,包括:
查看集群内正在进行的会话。
SHOW ALL CLUSTER SESSIONS;
查看当前节点上正在进行的会话。
SHOW ALL LOCAL SESSIONS;
使用 select 语句通过一个或多个返回字段查看特定会话。
select * FROM [SHOW ALL CLUSTER SESSIONS] WHERE user_name = ‘root’;
取消会话
CANCEL SESSION 语句用于停止长时间运行的会话。
取消单个会话。
– 取消特定ID的会话:
CANCEL SESSION ‘session_id’;
取消多个会话。
CANCEL SESSIONS (select session_id FROM [SHOW SESSIONS] WHERE user_name = ‘kaiwudb’);
使用脚本启停
./deploy.sh stop
KaiwuDB stop successfully.
./deploy.sh start
[START COMPLETED]: KaiwuDB start successfully.
./deploy.sh status
[STATUS COMPLETED]: KaiwuDB is runnning now.
使用系统服务名KaiwuDB启停
systemctl start kaiwudb
systemctl status kaiwudb
systemctl stop kaiwudb
[STOP COMPLETED]: KaiwuDB stop successfully.
systemctl restart kaiwudb
停止KWDB 服务
systemctl stop kaiwudb
删除与KWDB 服务相关的systemd 配置文件
sudo rm /etc/systemd/system/kaiwudb.service
删除 /etc/kaiwudb 目录及其内容
sudo rm -rf /etc/kaiwudb/
删除 KWDB 的数据目录及其内容 ,默认数据库目录为 /var/lib/kaiwudb
sudo rm -rf /var/lib/kaiwudb
卸载 KWDB 服务及相关的库
sudo apt-get -y remove kaiwudb-server kaiwudb-libcommon libopentelemetry-kaiwudb
删除 KWDB 管理用户及关联文件,管理用户默认为 kaiwudb
sudo userdel -r kaiwudb
[ERROR] 2025-04-15 14:39:07 KaiwuDB is not runnning now.
[WARN] 2025-04-15 14:39:47 The number of CPU cores does not meet the requirement. KaiwuDB may running failed.
原因:单节点配置建议不低于 4 核 8G。本机配置低于4核配置引起,重新调整启动正常。
kwbase sql --host=192.168.126.130
ERROR: cannot load certificates.
Check your certificate settings, set --certs-dir, or use --insecure for insecure clusters.
problem with CA certificate: not found
Failed running “sql”
原因:安全模式连接需要添加–certs-dir参数
kwbase sql --host=192.168.126.130 --certs-dir=/etc/kaiwudb/certs
root@192.168.126.130:26257/defaultdb>
KaiwuDB 2.2.0单节点部署非常简单,根据官方网站提供文档可以快速上手。单节点高可用方案以及集群方案,有时间在探索。KaiwuDB论坛已上线,感兴趣的伙伴可以登录学习https://www.kaiwudb.com/blog/632.html。
KWDB是KaiwuDB的社区版,再下载部署过程中存在包,路径等名称命名混淆的问题。建议以后可以命名更规范。
KaiwuDB也提供了认证培训课程,感兴趣的朋友可以登录如下网址学习:https://www.kaiwudb.com/learning/。