KaiwuDBKaiwuDB

KWDB 创作者计划 | KWDB在虚拟机下的unbuntu24.04x86-64版本下编译安装实践

2025-05-21

原文链接:【KWDB 创作者计划】_KWDB在虚拟机下的unbuntu24.04x86-64版本下编译安装实践-CSDN博客

作者:jiao_zg


前言

随着物联网,智能制造,人工智能,机器人等技术的发展,单纯的关系型数据库已经不能满足所有的存储场景了。时序数据库,大模型数据在一些场合下也需要和关系型数据库共同搭配,才能完成一些融合业务。这些信息化,物联网,大模型等应用对数据的需要使用诸如关系型数据库,时序数据库等不同的类型的数据库产品,这无论是部署还是维护都会带来一些开销。本文介绍一款方便用在物联网,机器人方向的一款数据库产品:kwdb.它融合了关系型数据库,时序数据库等多种类型的数据库,很适合用在iot应用中。本文在unbuntu24.04.2 x64操作系统中,通过编译安装KWDB数据库,并编写简单demo,为IOT的场景搭建基础的专用数据库。


一、环境准备

硬件:台式机pc windwos虚拟机

系统:unbuntu24.04.2 x64

kwdb:V2.2.0


二、部署规划


2.1 部署模式:

裸机,单机部署,非安全模式启动测试

为了便于测试,本文主要讲解单机部署方式。


2.2 部署方式

源码编译

本文使用Ubuntu进行演示。本文将安装过程记录下来,并把遇到的坑记录下来,分享给大家。


2.3 环境依赖及版本

KWDB 支持在 Linux 操作系统进行安装部署,下表列出了编译和运行 KWDB 所需的软件依赖。

编译依赖:

KWDB 创作者计划 | KWDB在虚拟机下的unbuntu24.04x86-64版本下编译安装实践(图1)

运行依赖:

KWDB 创作者计划 | KWDB在虚拟机下的unbuntu24.04x86-64版本下编译安装实践(图2)

温馨提示:上述的版本请保证从操作系统到组件版本的一致性,否则可能会出现各种问题,请保持版本的一致性。如果不确定当前系统组件的安装版本,可以通过组件的命令 --version 进行查看,或者自行了解组件版本查看的方法,确定好组件版本之后再进行后续步骤,如果版本过高或者过低,都需要进行额外的降低版本或者升级版本的操作,请注意不要嫌麻烦,否则可能后续会造成更多的麻烦。如果根据本文进行操作,请保证使用的操作系统和本文一致,否则可能会出现其他类型的错误。如果没有对应的操作系统版本,可以到unbuntu官网下载,本文使用的初始版本就是直接下载后的,(例如对应的cmake是4.1版本,先降级到3.28后再降级到3.23版本,操作比较特殊)使用虚拟机安装好之后即可验证了。 


2.4 源码下载 

KWDB 代码仓库下载代码,并将其存储到 GOPATH 声明的目录。


2.5 安装路径

/home/jiao/go


三、环境准备及依赖安装

安装 编译依赖,运行依赖,操作工具包等


3.1 安装 编译依赖

参考2.3的表格

为了方便执行,本文将所有的依赖项统一放到一个命令里执行,请注意可能和你的系统版本有差异,所以可能会出现部分组件已安装或者找不到的情况,没关系,如果有报错的情况可后面单独执行安装。

sudo apt update && sudo apt install -y ca-certificates golang cmake autoconf golang-yacc build-essential checkinstall libssl-dev libprotobuf-dev liblzma-dev libmcurses-dev 
 libncursesw-dev libatomic1 libstdc++6 protobuf-compiler git


跟本文环境不一致的操作系统,如上述组件如有一个失败,请单独进行编译安装,如果都成功且经过验证版本都符合,则可直接进入3.2进行运行依赖安装操作,否则需要将本部分所有依赖安装正确才能进入到下个环节,否则会出现make编译时失败。

修改cmake为3.28版本

# 添加 Kitware 的 CMake 仓库(包含历史版本)

wget -O - https://apt.kitware.com/keys/kitware.gpg | sudo gpg --dearmor -o /usr/share/keyrings/kitware-archive-keyring.gpg
echo "deb [signed-by=/usr/share/keyrings/kitware-archive-keyring.gpg] https://apt.kitware.com/ubuntu/ $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/kitware.list
# 更新仓库并安装 CMake 3.23
sudo apt update
sudo apt install cmake=3.2*


  注:该版本仍然比较高,需要降级到3.23以下,后面会讲解编辑 

KWDB 创作者计划 | KWDB在虚拟机下的unbuntu24.04x86-64版本下编译安装实践(图3)

单独安装go

sudo apt  install golang-go

KWDB 创作者计划 | KWDB在虚拟机下的unbuntu24.04x86-64版本下编译安装实践(图4)


   

执行gopath 查看gopath安装路径

go env

KWDB 创作者计划 | KWDB在虚拟机下的unbuntu24.04x86-64版本下编译安装实践(图5)


找到对应的路径,该值配置在环境变量的gopath中 

设置环境变量

sudo vim /etc/profile


 设置 GOPATH(仅在当前终端生效)

export GOPATH="/home/jiao/go"


/home/jiao/go   为了不出现路径不一致的操作,请将该目录和代码存放的路径保持一致

 使环境变量生效

source /etc/profile

KWDB 创作者计划 | KWDB在虚拟机下的unbuntu24.04x86-64版本下编译安装实践(图6)


创建目录

sudo mkdir -p "$GOPATH/src" "$GOPATH/pkg" "$GOPATH/bin"

KWDB 创作者计划 | KWDB在虚拟机下的unbuntu24.04x86-64版本下编译安装实践(图7)


单独安装git

sudo apt install git

KWDB 创作者计划 | KWDB在虚拟机下的unbuntu24.04x86-64版本下编译安装实践(图8)


3.2 安装运行依赖

参考2.3的表格

sudo apt update && sudo apt install -y openssl libssl-dev libprotobuf-dev protobuf-compiler libgeos-dev xz-utils squashfs-tools libgcc-12-dev squashfuse mount

KWDB 创作者计划 | KWDB在虚拟机下的unbuntu24.04x86-64版本下编译安装实践(图9)


3.3 安装其他

安装vim工具

sudo apt install vim

KWDB 创作者计划 | KWDB在虚拟机下的unbuntu24.04x86-64版本下编译安装实践(图10)


3.4 修改cmak版本到3.20

# 查看当前 CMake 版本
cmake --version
# 卸载 CMake 3.23
sudo apt-get remove cmake
sudo apt-get autoremove
sudo apt-get clean
# 下载 CMake 3.20.3 源代码
wget https://github.com/Kitware/CMake/releases/download/v3.20.3/cmake-3.20.3.tar.gz
tar -xzf cmake-3.20.3.tar.gz
cd cmake-3.20.3
# 安装依赖项
sudo apt-get update
sudo apt-get install -y build-essential g++ libssl-dev
# 创建构建目录并配置
mkdir build
cd build
../bootstrap
# 编译和安装
make -j$(nproc)
sudo make install
# 验证安装
cmake --version


安装过程比较慢,请耐心等待 

KWDB 创作者计划 | KWDB在虚拟机下的unbuntu24.04x86-64版本下编译安装实践(图11)

 

3.5 安装 liblzma-dev

sudo apt-get install -y liblzma-dev

KWDB 创作者计划 | KWDB在虚拟机下的unbuntu24.04x86-64版本下编译安装实践(图12)



四、部署步骤

 

4.1 使用 git clone 命令:下载源码

 #请勿修改目录路径中的 src/gitee.com/kwbasedb
首先进入到代码下载路径/home/jiao/go,这里一定要和 export GOPATH="/home/jiao/go" 中的值保持一致
#请勿修改目录路径中的 src/gitee.com/kwbasedb
sudo git clone https://gitee.com/kwdb/kwdb.git /home/jiao/go/src/gitee.com/kwbasedb

 KWDB 创作者计划 | KWDB在虚拟机下的unbuntu24.04x86-64版本下编译安装实践(图13)

首次拉取代码

git config --global --add safe.directory /home/jiao/go/src/gitee.com/kwbasedb
sudo git submodule update --init

KWDB 创作者计划 | KWDB在虚拟机下的unbuntu24.04x86-64版本下编译安装实践(图14)


执行更新

sudo git submodule update --remote

KWDB 创作者计划 | KWDB在虚拟机下的unbuntu24.04x86-64版本下编译安装实践(图15)


4.2 构建安装

在项目目录下创建并切换到构建目录。

cd  /home/jiao/go/src/gitee.com/kwbasedb
sudo mkdir build && cd build

KWDB 创作者计划 | KWDB在虚拟机下的unbuntu24.04x86-64版本下编译安装实践(图16)

 

4.3 运行 CMake 配置

sudo cmake .. -DCMAKE_BUILD_TYPE=Debug


注意:等号前后不要有空格 

  KWDB 创作者计划 | KWDB在虚拟机下的unbuntu24.04x86-64版本下编译安装实践(图17)


4.4 禁用Go模块功能

sudo vim /etc/profile

添加下面一行

export GO111MODULE=off

KWDB 创作者计划 | KWDB在虚拟机下的unbuntu24.04x86-64版本下编译安装实践(图18)


使修改生效 

source /etc/profile

结果如下: 

 KWDB 创作者计划 | KWDB在虚拟机下的unbuntu24.04x86-64版本下编译安装实践(图19)

 

4.5 编译

4.5.1 编译

注意所在目录:

/home/jiao/go/src/gitee.com/kwbasedb/build
sudo make


可能中间会因为上述组件安装失败或者版本问题导致错误,根据错误进行修正,修正后的结果最终完成日志 

 KWDB 创作者计划 | KWDB在虚拟机下的unbuntu24.04x86-64版本下编译安装实践(图20)


4.5.2 安装 

/home/jiao/go/src/gitee.com/kwbasedb/build
sudo make install


安装后的结果如下:使用debug模式 

KWDB 创作者计划 | KWDB在虚拟机下的unbuntu24.04x86-64版本下编译安装实践(图21)

 

4.5.3 验证是否成功

进入 kwbase 脚本所在目录,查看数据库版本,验证是否安装成功。

cd /home/jiao/go/src/gitee.com/kwbasedb/install/bin
./kwbase version


安装成功后 

 KWDB 创作者计划 | KWDB在虚拟机下的unbuntu24.04x86-64版本下编译安装实践(图22)

 

五、使用自带工具体验

5.1 启动数据库

5.1.1 设置共享库的搜索路径

export LD_LIBRARY_PATH=../lib

KWDB 创作者计划 | KWDB在虚拟机下的unbuntu24.04x86-64版本下编译安装实践(图23)

考虑持久运行,可以修改/etc/profile


5.1.2 进入 kwbase 脚本所在目录

cd /home/jiao/go/src/gitee.com/kwbasedb/install/bin



5.1.3 启动数据库

./kwbase start-single-node --insecure --listen-addr=:26257 --background

启动提示在非安全模式下运行,先不用管,我们使用的也是单机部署,非集群部署,先忽略 

KWDB 创作者计划 | KWDB在虚拟机下的unbuntu24.04x86-64版本下编译安装实践(图24)


5.2 使用本地数据库工具连接数据库

由于本文安装时使用的是非安全模式,所以使用非安全模式安装

 注意:如果远程的话hosthost修改为对应ip地址

sudo ./kwbase sql --insecure --host=localhost

KWDB 创作者计划 | KWDB在虚拟机下的unbuntu24.04x86-64版本下编译安装实践(图25)


5.3 创建第一个融合数据库

在5.2进入命令行操作界面之后,执行下面操作

sql命令详情参考附件4链接 

KWDB 创作者计划 | KWDB在虚拟机下的unbuntu24.04x86-64版本下编译安装实践(图26)

 

5.3.1 创建关系型数据库

CREATE DATABASE db1;

查看创建的数据库

SHOW DATABASES;

KWDB 创作者计划 | KWDB在虚拟机下的unbuntu24.04x86-64版本下编译安装实践(图27)

 

5.3.2 创建时序数据库

创建数据库命令

CREATE TS DATABASE ts1;

KWDB 创作者计划 | KWDB在虚拟机下的unbuntu24.04x86-64版本下编译安装实践(图28)


查看创建的数据库

SHOW DATABASES;

KWDB 创作者计划 | KWDB在虚拟机下的unbuntu24.04x86-64版本下编译安装实践(图29)


看结果是显示了关系和时序数据库两个数据库


六、附件

1.源码   

kwdb: KWDB 是一款面向 【AIoT 场景】的【分布式多模数据库】,支持在同一实例同时建立时序库和关系库并融合处理多模数据,具备千万级设备接入、百万级数据秒级写入、亿级数据秒级读取等时序数据高效处理能力,具有稳定安全、高可用、易运维等特点。 - Gitee.com

2.参考目录:

README.md · KWDB/kwdb - Gitee.com

3.编译cmake版本参考

 centos7. 编译安装cmake 3.23.0 - He_LiangLiang - 博客园

4.sql命令参考:

文档中心-KaiwuDB


体验全新的分布式多模数据库解决方案

企业版 社区版

KaiwuDB 是浪潮控股的数据库企业,面向工业物联网、数字能源、车联网、智慧产业等行业领域,提供稳定安全、高性能、易运维的创新数据软件与服务。

关注官方微信

友情链接:浪潮  

© 上海沄熹科技有限公司 Shanghai Yunxi Technology Co., Ltd.    沪ICP备2023002175号-1    网站服务协议   |   隐私政策
400-624-5688-7
服务与支持
marketing@kaiwudb.org.cn