TDengine Enterprise 指定目录安装与组件启停操作指南(install_spec.sh 与 tdsvc.sh 实战)
【免费下载链接】TDengineHigh-performance, scalable time-series database designed for Industrial IoT (IIoT) scenarios项目地址: https://gitcode.com/GitHub_Trending/tde/TDengine
本指南基于 TDengine 企业版 Linux 打包目录(packaging/tools)中的官方安装与运维文档,完整讲解如何将 TDengine 企业版安装到用户自定义目录(而非系统默认路径),以及如何通过tdsvc.sh脚本对 taosd、taosadapter、taoskeeper、taos-explorer、taosx 等核心组件进行精细化启停管理。阅读完本文,你将掌握:解包企业版安装包、利用install_spec.sh -d指定安装目录、配置环境变量、编写多组件统一启停命令的完整流程,并能结合配置文件与源码理解脚本背后的实现原理。
1. 安装准备:解包安装包与脚本就位
TDengine 企业版以压缩包形式分发,例如TDengine-enterprise-3.3.6.5-Linux-x64.tar.gz。若需要把数据库安装到自定义路径(如~/tdengine),官方建议采用"解包脚本安装"而非系统级 deb/rpm 包安装。
第一步,解压安装包并进入解压目录:
tar xf TDengine-enterprise-3.3.6.5-Linux-x64.tar.gz && cd TDengine-enterprise-3.3.6.5第二步,确保安装脚本install_spec.sh位于TDengine-enterprise-3.3.6.5目录内。该脚本是本次指定目录安装的核心程序,其源码位于仓库 packaging/tools/install_spec.sh,内部通过script_dir=$(dirname $(readlink -f "$0"))定位自身所在目录,再基于该目录查找bin/、driver/、cfg/、inc/、examples/等资源,因此脚本必须与被解包的资源文件处于同一目录。
第三步,为脚本授予可执行权限:
chmod 755 install_spec.sh2. 执行安装:install_spec.sh参数详解
执行安装脚本,使用-d指定安装目录(官方示例为~/tdengine),使用-e no跳过交互式 FQDN 询问(非交互模式):
./install_spec.sh -d ~/tdengine -e no结合 packaging/tools/install_spec.sh 的源码可以确认该脚本支持的完整参数:
| 参数 | 含义 | 默认值 | 说明 |
|---|---|---|---|
-v | 安装类型 | server | 可选server(服务端+客户端)或client(仅客户端) |
-e | 是否交互式配置 FQDN | yes | 设为no即非交互模式,脚本将跳过set_hostname、firstEp、邮箱等交互提问 |
-d | 安装目录 | $HOME/tdengine | 脚本内部会拼接为$(echo $OPTARG)/tdengine,即传-d ~实际安装到~/tdengine |
-h | 显示帮助 | - | 打印Usage: install_spec.sh -v [server | client] -e [yes | no] -d [install dir] |
注意-d参数的一个细节:从源码installDir=$(echo $OPTARG)/tdengine可以看到,即使你传入了~/tdengine,脚本最终拼接的结果仍然是~/tdengine/tdengine。因此官方文档中的-d ~/tdengine是一种惯用写法,实际目录会以安装完成后脚本输出的路径为准。
脚本执行时还会做以下关键事情(见源码 installProduct):
- 解压内部
package.tar.gz,创建bin、driver、examples、include、cfg、tmp等子目录; - 将
bin/下的全部可执行文件复制到安装目录的bin/,并把remove.sh重命名为uninstall.sh; - 将
driver/下的libtaos.*、libtaosnative.*、libtaosws.*动态库复制到driver/; - 在安装目录下生成
export/bin、export/lib、export/include三个软链接目录,分别链接可执行文件、动态库与头文件(taos.h、taosdef.h、taoserror.h、tdef.h、taosudf.h等); - 将
cfg/taos.cfg模板复制到cfg/,并自动追加dataDir、logDir、tmpDir等指向自定义目录的配置行(见 install_taosd_config); - 若为 cluster 模式,还会安装 taosadapter、taoskeeper、taos-explorer、taosx 等组件的 toml 配置模板,并把其中的
localhost/127.0.0.1替换为实际 FQDN; - 自动检测 systemd / SysV init / 无服务管理器三种环境(源码第 52-70 行通过检测
ps aux | grep systemd与which service判断),决定后续服务注册方式。
3. 移动 tdsvc.sh 并配置环境变量
安装完成后,把组件启停管理脚本tdsvc.sh移动到安装目录并授权:
mv tdsvc.sh ~/tdengine && chmod 755 ~/tdengine/tdsvc.shtdsvc.sh即仓库中的 packaging/tools/tdsvc.sh,它管理的组件列表固定为("taosd" "taosadapter" "taoskeeper" "taos-explorer" "taosx"),覆盖了 TDengine 集群模式下的全部常驻进程。
为了让taos命令行与动态库能被当前 shell 找到,需要重新登录 shell 或加载用户环境配置:
source $HOME/.bashrc # 适用于 sh、bash、zsh这一步对应的源码逻辑位于 install_spec.sh:脚本安装时会自动向~/.bashrc追加两段环境变量——
# taos bin env export PATH=$installDir/export/bin:$PATH # taos lib env export LD_LIBRARY_PATH=$installDir/export/lib即把export/bin(可执行文件软链接)与export/lib(动态库软链接)注入 PATH 和 LD_LIBRARY_PATH。因此即使安装目录不在系统标准路径下,taos、taosd等命令也能直接使用。
4. 组件启动与停止操作(tdsvc.sh)
所有组件的配置文件统一位于安装目录的cfg文件夹,本文示例中即为~/tdengine/cfg/。其中服务端核心配置为taos.cfg(模板见 packaging/cfg/taos.cfg),其余组件使用各自独立的 toml 文件(taosadapter.toml、taoskeeper.toml、explorer.toml、taosx.toml)。
4.1 启动全部组件
./tdsvc.sh start-all ~/tdengine/cfg/结合 tdsvc.sh 源码可见,start-all会依次对五个组件执行start_component,各组件实际启动命令如下(均为nohup ... &后台方式运行):
| 组件 | 实际启动命令 | 说明 |
|---|---|---|
| taosd | taosd -c <config_dir> | 数据库服务端,-c指定配置目录 |
| taosadapter | taosadapter -c <config_dir>/taosadapter.toml | REST/WebSocket 接入适配层,启动后sleep 5等待就绪 |
| taoskeeper | taoskeeper -c <config_dir>/taoskeeper.toml | 监控信息采集与上报组件 |
| taos-explorer | taos-explorer -C <config_dir>/explorer.toml | 图形化管理界面(注意此处是大写-C) |
| taosx | taosx -c <config_dir>/taosx.toml | 数据同步/迁移组件 |
4.2 停止全部组件
./tdsvc.sh stop-allstop-all按同样顺序依次停止五个组件。停止逻辑(tdsvc.sh)先通过ps -ef | grep "$component"获取 PID,先发送SIGTERM优雅退出,随后以 1 秒间隔轮询最多 10 次(kill -0检测进程是否存活);若超时仍未退出,则发送SIGKILL强制终止,避免残留进程占用端口与数据文件。
4.3 启动 / 停止单个组件
按需启动某个组件(例如只启动数据库服务端):
./tdsvc.sh start taosd ~/tdengine/cfg/按需停止某个组件:
./tdsvc.sh stop taosd脚本对参数做了严格校验:start必须同时提供组件名与配置目录,否则输出Usage: $0 start <component> <config_dir>并退出;stop只接受组件名。可用组件名仅限上文表格中的五个,传入未知组件会提示Unknown component。
5. 与系统服务方式的关系与验证
tdsvc.sh是"指定目录安装"场景下的进程级启停方案,适合不希望注册系统服务、或需要频繁调试/多实例部署的情况。若使用 deb/rpm 包安装,则走 systemd 服务托管(服务单元文件见 packaging/cfg/taosd.service,安装脚本中的install_service_on_systemd会执行systemctl enable与daemon-reload,见 install_spec.sh)。两种方式的管理入口不同,但读取的都是~/tdengine/cfg/下的同一套配置文件。
启动后可通过以下方式验证服务状态:
# 查看各组件进程 ps -ef | grep -E "taosd|taosadapter|taoskeeper|taos-explorer|taosx" # 使用 taos CLI 连接本地集群(-h 指定 FQDN/IP) taos -c ~/tdengine/cfg/ -h $(hostname) # 查看数据库版本 taos -s "select server_version();"6. 常见问题与注意事项
-d目录拼接行为:如前所述,install_spec.sh会把-d传入值再拼接/tdengine。若不传-d,默认安装到$HOME/tdengine,因此官方文档的-d ~/tdengine与默认行为在语义上一致。- 环境变量未生效:若
taos命令提示 not found,检查~/.bashrc中是否已包含export PATH=.../export/bin:$PATH与export LD_LIBRARY_PATH=.../export/lib,并重新source或重开 shell。 - 配置文件位置:指定目录安装后,配置不在
/etc/taos/,而在~/tdengine/cfg/;taos.cfg中的dataDir、logDir、tmpDir也已被脚本改写为安装目录下的data/taos、log/taos、tmp/taos。 - 老版本数据兼容:源码在安装前会检查默认数据目录
dataDir/dnode/dnodeCfg.json,若存在 TDengine 2.x 旧数据会提示先清理,避免跨大版本数据目录冲突。 - 防火墙与集群:若为多节点集群部署,需保证 6030(taosd)、6041(taosadapter REST)、6060(taos-explorer)等端口互通;参考仓库中的 packaging/tools/quick_deploy.sh 可看到官方建议关闭 ufw/firewalld 并做内核参数调优(tcp 连接数、文件句柄数等)。
通过本指南的步骤,你可以完全绕开系统默认目录,将 TDengine Enterprise 部署在自定义路径下,并用统一的tdsvc.sh命令完成对数据库内核及周边组件的生命周期管理,适用于私有化交付、容器内运行、多实例并存等定制化场景。
【免费下载链接】TDengineHigh-performance, scalable time-series database designed for Industrial IoT (IIoT) scenarios项目地址: https://gitcode.com/GitHub_Trending/tde/TDengine
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考