跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客我的书AI学习GitHub 精选镜像AI工具UI配色美学关于
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
Shell / Bash

KWDB 3.1.0 在 Ubuntu 22.04 部署实战:TLS 配置与性能测试

KWDB 3.1.0 在 Ubuntu 22.04 环境下的单机部署全流程指南。涵盖系统环境核查、依赖安装、配置文件修改(支持 insecure 与 TLS 模式)、脚本执行及服务验证。详细记录了常见部署问题如依赖缺失、服务状态异常、端口占用及权限错误的解决方案,并包含基于 1 万行数据的读写性能基线测试与索引优化分析,确保安装即用且可验证。

数字游民发布于 2026/3/17更新于 2026/10/25125 浏览
KWDB 3.1.0 在 Ubuntu 22.04 部署实战:TLS 配置与性能测试

KWDB 3.1.0 在 Ubuntu 22.04 部署实战

KWDB 3.1.0 版本在运维脚本和配置管理等方面进行了优化,为单机部署带来了便利。本文以 Ubuntu 22.04 为基础环境,从实战角度出发,完整拆解 KWDB 3.1.0 单机部署的全流程,包括环境核查、依赖配置、脚本执行及服务验证,并通过性能基线测试完成验收。

1. 版本与部署路线

本次实战基于 Ubuntu 22.04 环境,采用 单机版 命令行部署方式。建议直接使用 KWDB 3.1.0 版本,新版本在脚本易用性上做了优化(详见 Gitee Release)。

2. 部署目标

完成以下操作后,应达成以下目标:

  1. 确认系统环境和资源(CPU、内存、磁盘)。
  2. 安装必要依赖(如 libprotobuf23、squashfs-tools 等)。
  3. 运行部署脚本 install --single。
  4. 确保 systemd 服务状态为 active。
  5. 端口监听正常(默认 26257 和 8080)。
  6. 能够连接数据库并执行查询。

3. 准备工作

3.1 检查系统信息

lsb_release -a
uname -a
lscpu | sed -n '1,20p'
free -h
df -hT
ip addr
timedatectl status
  • 确认系统为 Ubuntu 22.04.x。
  • 内存建议 4G 以上,推荐 8G。
  • 磁盘预留 50G+,建议使用 SSD 和 ext4 文件系统。

3.2 检查端口占用

sudo ss -tuln | egrep '(:26257|:8080)\b' || true

若端口被占用,需在 deploy.cfg 中修改端口或停止占用服务。

3.3 规划目录

建议将安装包和数据分开存放:

sudo mkdir -p /app/kwdb/{soft,data}
sudo chown -R "$USER":"$USER" /app/kwdb
cd /app/kwdb/soft

4. 获取安装包

前往 Gitee Releases 下载对应包:https://gitee.com/kwdb/kwdb/releases

方式 A:使用 wget 下载

 /app/kwdb/soft
VERSION=
FILE=
URL=
wget -O  
cd
"3.1.0"
"KWDB-${VERSION}-ubuntu22.04-intel-x86_64-debs.tar.gz"
"https://gitee.com/kwdb/kwdb/releases/download/V${VERSION}/${FILE}"
"$FILE"
"$URL"

方式 B:浏览器下载上传

在本地下载后,通过 scp 或 WinSCP 上传至服务器 /app/kwdb/soft/ 目录。

5. 解压文件

tar -xzf "$FILE"
ls -al

解压后将看到 kwdb_install 目录,后续操作在此进行。

6. 安装依赖

单机部署最容易因依赖缺失导致失败,建议提前安装:

sudo apt update
sudo apt install -y ca-certificates curl wget tar \
libprotobuf23 protobuf-compiler \
libgflags2.2 \
libssl-dev liblzma-dev libncurses-dev libatomic1 libstdc++6 \
squashfs-tools

安装后验证:

dpkg -s libprotobuf23 | grep -E '^Version'
dpkg -l | grep -E '^ii\s+libgflags' || true
protoc --version || true
dpkg -l | grep -E 'squashfs-tools|libprotobuf23' || true

特别注意 squashfs-tools,未安装会导致安装阶段报错。

7. 配置文件修改

进入解压目录编辑 deploy.cfg:

cd /app/kwdb/soft/kwdb_install
nano deploy.cfg

主要修改两项:

  1. data_root:改为规划的数据目录(如 /app/kwdb/data/kaiwudb)。
  2. node_addr:改为对外服务的 IP 地址,删除 [cluster] 相关配置。

7.1 非安全模式 (insecure)

适用于快速验证:

[global]
secure_mode=insecure
management_user=kaiwudb
rest_port=8080
kaiwudb_port=26257
grpc_port=27257
data_root=/app/kwdb/data/kaiwudb

[local]
node_addr=你的公网地址

7.2 TLS 安全模式 (tls)

生产环境推荐:

[global]
secure_mode=tls
management_user=kaiwudb
rest_port=8080
kaiwudb_port=26257
grpc_port=27257
data_root=/app/kwdb/data/kaiwudb

[local]
node_addr=你的公网 IP

删除 [cluster]、ssh_*、[additional] 等多余段落,仅保留 [global] 和 [local]。

8. 执行安装

8.1 添加执行权限

chmod +x ./deploy.sh

8.2 运行安装脚本

./deploy.sh install --single

安装完成后刷新 systemd 并启用服务:

sudo systemctl daemon-reload
sudo systemctl enable --now kaiwudb

9. 服务验证

9.1 检查服务状态

sudo systemctl status kaiwudb --no-pager

若状态为 inactive (dead),尝试重新加载并启动:

sudo systemctl daemon-reload
sudo systemctl enable --now kaiwudb
sudo systemctl status kaiwudb --no-pager

若仍无法启动,查看日志:

sudo journalctl -u kaiwudb -n200 --no-pager

9.2 检查端口监听

sudo ss -tulnp | egrep '(:26257|:8080)\b' || true

9.3 连接数据库

使用生成的便捷脚本或客户端连接:

ls -al | egrep 'kw-(sql|status)\.sh' || true
./kw-status.sh || true
./kw-sql.sh || true

若无脚本,使用 kwbase 客户端(TLS 模式需指定证书目录):

sudo /usr/local/kaiwudb/bin/kwbase sql --certs-dir=/etc/kaiwudb/certs --host=127.0.0.1:26257

执行 SQL 查看版本:

select version();

9.4 基础验证

create database if not exists demo;
create table if not exists demo.t_kv ( id int primary key, v varchar(64));
insert into demo.t_kv (id, v) values (1, 'hello-kwdb');
select * from demo.t_kv;

10. 常见问题排查

10.1 依赖缺失导致 dpkg 报错

现象:脚本运行时报错缺依赖。 解决:

sudo apt update
sudo apt install -y libprotobuf23 squashfs-tools libgflags2.2
sudo apt --fix-broken install -y
sudo dpkg --configure -a

10.2 服务状态 inactive

现象:安装成功但服务未启动。 解决:

sudo systemctl daemon-reload
sudo systemctl enable --now kaiwudb

10.3 node_addr 填错导致远程连不上

现象:端口监听但外部无法连接。 解决:修改 deploy.cfg 中的 node_addr 为对外可通 IP,并检查防火墙策略。

10.4 直接在 Shell 敲 SQL 报错

现象:Shell 提示 syntax error。 解决:先进入 SQL Shell:

sudo /usr/local/kaiwudb/bin/kwbase sql --certs-dir=/etc/kaiwudb/certs --host=127.0.0.1:26257

10.5 TLS 模式权限不足

现象:读取证书报 permission denied。 解决:使用 sudo 运行命令,或调整证书目录权限。

10.6 CPU 核数警告

现象:提示 CPU 核心数不满足要求。 建议:测试环境可忽略,生产环境建议至少 4C8G。

10.7 磁盘满或权限错误

现象:启动失败,日志显示 no space left on device。 解决:清理磁盘空间,检查 data_root 目录权限。

11. 性能测试

11.1 TLS 安全模式体验

服务端证书位于 /etc/kaiwudb/certs。连接时需指定 --certs-dir。

11.2 读写性能基线

创建测试表:

create database if not exists bench;
create table if not exists bench.t_write ( ts timestamp, dev varchar(32), v1 double precision, v2 double precision );

写入测试(N=10000):

N=10000
(echo "begin;"
for i in $(seq 1 $N); do echo "insert into bench.t_write values (now(), 'dev-01', $i, $i);"; done
echo "commit;") | sudo /usr/local/kaiwudb/bin/kwbase sql --certs-dir=/etc/kaiwudb/certs --host=127.0.0.1:26257

读查询测试:

cat <<'SQL' | sudo /usr/local/kaiwudb/bin/kwbase sql --certs-dir=/etc/kaiwudb/certs --host=127.0.0.1:26257
select count(*) from bench.t_write;
select count(*) from bench.t_write where dev='dev-01';
SQL

11.3 索引与执行计划

创建索引:

create index if not exists idx_t_write_dev on bench.t_write (dev);

对比查询耗时及执行计划:

explain analyze select count(*) from bench.t_write where dev='dev-01';

11.4 稳定性测试

重启服务并验证数据持久化:

sudo systemctl restart kaiwudb
sudo systemctl status kaiwudb --no-pager
sudo ss -tulnp | egrep '(:26257|:8080)\b' || true

12. 总结

  • 单机安装:Ubuntu 22.04 + KWDB 3.1.0(TLS 模式),服务正常启动。
  • 问题排查:覆盖依赖缺失、服务状态异常、TLS 权限等常见场景。
  • 功能验证:建库、建表、写入、查询、重启全流程通过。
  • 性能基线:建立 1 万行数据量下的读写基线,支持索引与执行计划分析。

目录

  1. KWDB 3.1.0 在 Ubuntu 22.04 部署实战
  2. 1. 版本与部署路线
  3. 2. 部署目标
  4. 3. 准备工作
  5. 3.1 检查系统信息
  6. 3.2 检查端口占用
  7. 3.3 规划目录
  8. 4. 获取安装包
  9. 方式 A:使用 wget 下载
  10. 方式 B:浏览器下载上传
  11. 5. 解压文件
  12. 6. 安装依赖
  13. 7. 配置文件修改
  14. 7.1 非安全模式 (insecure)
  15. 7.2 TLS 安全模式 (tls)
  16. 8. 执行安装
  17. 8.1 添加执行权限
  18. 8.2 运行安装脚本
  19. 9. 服务验证
  20. 9.1 检查服务状态
  21. 9.2 检查端口监听
  22. 9.3 连接数据库
  23. 9.4 基础验证
  24. 10. 常见问题排查
  25. 10.1 依赖缺失导致 dpkg 报错
  26. 10.2 服务状态 inactive
  27. 10.3 node_addr 填错导致远程连不上
  28. 10.4 直接在 Shell 敲 SQL 报错
  29. 10.5 TLS 模式权限不足
  30. 10.6 CPU 核数警告
  31. 10.7 磁盘满或权限错误
  32. 11. 性能测试
  33. 11.1 TLS 安全模式体验
  34. 11.2 读写性能基线
  35. 11.3 索引与执行计划
  36. 11.4 稳定性测试
  37. 12. 总结

更多推荐文章

查看全部
  • 自然语言处理在医疗领域的应用与实战
  • 数据结构基础:顺序表详解与动态实现
  • Spring Boot 基于 Vue 的工厂车间管理系统设计
  • OpenClaw 对接飞书机器人常见问题排查与配置指南
  • 小型 AIS 接收机 dAI01 连接配置与使用指南
  • 开源声音克隆工具 OpenVoice:30 秒复刻音色与多语言控制
  • GitHub 黑客成长技术清单与安全工具资源汇总
  • Linux 部署 RocketMQ 及公网穿透配置指南
  • 大模型调参新姿势:基于Llama Factory的Web UI交互式微调全攻略
  • Claude-Mem:为 Claude Code 构建跨会话长期记忆
  • MySQL 常用函数实战:字符串、日期与聚合函数
  • DeepSeek 降低 AIGC 检测率的 5 条指令与 3 款工具实测
  • Linux 进程间通信进阶:消息队列与信号量实战
  • MySQL 与 Oracle 视图的创建与使用
  • 网络安全工程师职业指南:职责、技能与认证路径
  • VS Code 远程 SSH 连接下 Copilot 无法使用 Claude 模型解决方案
  • GitHub Copilot 代理配置与网络优化指南
  • MoonTV:基于 Next.js 的开源跨平台影视聚合播放器
  • Mac端Charles抓包工具安装与HTTPS证书配置指南
  • AIGC 产品经理学习指南:核心技能、实战项目与面试准备

相关免费在线工具

  • Base64 字符串编码/解码

    将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online

  • Base64 文件转换器

    将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online

  • Markdown转HTML

    将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online

  • HTML转Markdown

    将 HTML 片段转为 GitHub Flavored Markdown,支持标题、列表、链接、代码块与表格等;浏览器内处理,可链接预填。 在线工具,HTML转Markdown在线工具,online

  • JSON 压缩

    通过删除不必要的空白来缩小和压缩JSON。 在线工具,JSON 压缩在线工具,online

  • JSON美化和格式化

    将JSON字符串修饰为友好的可读格式。 在线工具,JSON美化和格式化在线工具,online