跳到主要内容
KaiwuDB 3.1.0 在 Ubuntu 22.04 部署实战:TLS 配置与性能测试 | 极客日志
Shell / Bash
KaiwuDB 3.1.0 在 Ubuntu 22.04 部署实战:TLS 配置与性能测试 介绍 KaiwuDB 3.1.0 版本在 Ubuntu 22.04 环境下的单机部署全流程。内容包括系统环境核查、依赖包安装、配置文件(deploy.cfg)修改(支持 insecure 与 TLS 模式)、一键安装脚本执行及服务验证。针对常见部署问题如依赖缺失、服务状态 inactive、端口占用及证书权限等提供解决方案,并包含基础读写性能测试与索引优化分析,帮助开发者快速搭建可用数据库环境。
星落 发布于 2026/3/30 更新于 2026/5/23 28 浏览1. 版本与部署路线
本次实战基于 Ubuntu 22.04 环境,完成 单机版 KaiwuDB 的命令行部署。建议直接使用 KWDB 3.1.0 版本,新版本在脚本易用性和配置管理上有所优化。
2. 部署目标
完成以下操作后,应能实现:
系统环境和资源核查(CPU、内存、磁盘)。
安装必要依赖(如 libprotobuf23、squashfs-tools 等)。
执行部署脚本一次跑通(install --single)。
systemd 服务状态变为 active。
端口监听正常(默认 26257 和 8080)。
成功连接数据库并查询版本。
3. 准备工作
3.1 检查系统信息
运行命令确认环境配置:
lsb_release -a
uname -a
lscpu | sed -n '1,20p'
free -h
df -hT
ip addr
timedatectl status
lsb_release -a 需确认为 Ubuntu 22.04.x。
free -h 内存建议 4G 以上,8G 更稳。
df -hT 磁盘建议留 50G+,SSD 优于 HDD,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 下载对应包:
方式 A:直接 wget
/app/kwdb/soft
VERSION=
FILE=
URL=
curl -I -L | -n 20
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} "
"$URL "
head
"$FILE "
"$URL "
方式 B:浏览器下载再上传 Windows 用户可下载后通过 scp 或 WinSCP 上传至服务器 /app/kwdb/soft/。
5. 解压文件 cd /app/kwdb/soft
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
注意:Ubuntu 22.04 上缺依赖会导致 dpkg 报错,特别是 squashfs-tools 常被忽略。
7. 修改配置文件 deploy.cfg cd /app/kwdb/soft/kwdb_install
ls -al
nano deploy.cfg
data_root:改为规划的数据目录(如 /app/kwdb/data/kaiwudb)。
node_addr:改为对外服务的 IP 地址,不要开启 [cluster]。
7.1 模板 A:非安全模式 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 模板 B: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 添加执行权限
8.2 运行安装脚本 ./deploy.sh install --single
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 -n 200 --no-pager
9.2 检查端口监听 sudo ss -tulnp | egrep '(:26257|:8080)\b' || true
9.3 连接数据库 使用便捷脚本或客户端硬连(TLS 模式需带证书目录):
sudo /usr/local/kaiwudb/bin/kwbase sql --certs-dir=/etc/kaiwudb/certs --host=127.0.0.1:26257
若不加 sudo 报 permission denied,说明证书权限严格,建议使用 sudo 或调整证书目录权限。
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 依赖缺失导致安装失败 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 现象 :安装成功但服务未启动。
解决 :务必执行 daemon-reload 和 enable --now。
10.3 node_addr 填错导致远程连不上 现象 :本地正常,远程无法连接。
解决 :检查 deploy.cfg 中的 node_addr 是否为对外 IP,并确认防火墙策略。
10.4 直接在 bash 敲 SQL 报错 现象 :shell 提示 syntax error。
解决 :先进入 SQL shell 再执行命令。
10.5 TLS 模式权限不足 现象 :读不到 /etc/kaiwudb/certs/*.key。
解决 :使用 sudo 运行客户端,或规范配置证书目录权限。
10.6 CPU 核数警告 现象 :提示 CPU 核心数不满足要求。
处理 :测试环境可忽略,生产环境建议至少 4C8G。
10.7 磁盘满或权限错误 现象 :启动失败,日志报 no space left on device。
解决 :清理磁盘空间,检查 data_root 目录权限。
11. 性能基线测试
11.1 读写性能实测 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
(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
select count (* ) from bench.t_write;
select count (* ) from bench.t_write where dev= 'dev-01' ;
11.2 索引与执行计划 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.3 稳定性测试 sudo systemctl restart kaiwudb
sudo systemctl status kaiwudb --no-pager
sudo ss -tulnp | egrep '(:26257|:8080)\b' || true
select count (* ) from bench.t_write;
相关免费在线工具 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