TDengine Enterprise 指定目录安装与组件启停操作指南(install_spec.sh 与 tdsvc.sh 实战)
2026/9/14 9:11:51 网站建设 项目流程

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.sh

2. 执行安装: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是否交互式配置 FQDNyes设为no即非交互模式,脚本将跳过set_hostnamefirstEp、邮箱等交互提问
-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,创建bindriverexamplesincludecfgtmp等子目录;
  • bin/下的全部可执行文件复制到安装目录的bin/,并把remove.sh重命名为uninstall.sh
  • driver/下的libtaos.*libtaosnative.*libtaosws.*动态库复制到driver/
  • 在安装目录下生成export/binexport/libexport/include三个软链接目录,分别链接可执行文件、动态库与头文件(taos.htaosdef.htaoserror.htdef.htaosudf.h等);
  • cfg/taos.cfg模板复制到cfg/,并自动追加dataDirlogDirtmpDir等指向自定义目录的配置行(见 install_taosd_config);
  • 若为 cluster 模式,还会安装 taosadapter、taoskeeper、taos-explorer、taosx 等组件的 toml 配置模板,并把其中的localhost/127.0.0.1替换为实际 FQDN;
  • 自动检测 systemd / SysV init / 无服务管理器三种环境(源码第 52-70 行通过检测ps aux | grep systemdwhich service判断),决定后续服务注册方式。

3. 移动 tdsvc.sh 并配置环境变量

安装完成后,把组件启停管理脚本tdsvc.sh移动到安装目录并授权:

mv tdsvc.sh ~/tdengine && chmod 755 ~/tdengine/tdsvc.sh

tdsvc.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。因此即使安装目录不在系统标准路径下,taostaosd等命令也能直接使用。

4. 组件启动与停止操作(tdsvc.sh)

所有组件的配置文件统一位于安装目录的cfg文件夹,本文示例中即为~/tdengine/cfg/。其中服务端核心配置为taos.cfg(模板见 packaging/cfg/taos.cfg),其余组件使用各自独立的 toml 文件(taosadapter.tomltaoskeeper.tomlexplorer.tomltaosx.toml)。

4.1 启动全部组件

./tdsvc.sh start-all ~/tdengine/cfg/

结合 tdsvc.sh 源码可见,start-all会依次对五个组件执行start_component,各组件实际启动命令如下(均为nohup ... &后台方式运行):

组件实际启动命令说明
taosdtaosd -c <config_dir>数据库服务端,-c指定配置目录
taosadaptertaosadapter -c <config_dir>/taosadapter.tomlREST/WebSocket 接入适配层,启动后sleep 5等待就绪
taoskeepertaoskeeper -c <config_dir>/taoskeeper.toml监控信息采集与上报组件
taos-explorertaos-explorer -C <config_dir>/explorer.toml图形化管理界面(注意此处是大写-C
taosxtaosx -c <config_dir>/taosx.toml数据同步/迁移组件

4.2 停止全部组件

./tdsvc.sh stop-all

stop-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 enabledaemon-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:$PATHexport LD_LIBRARY_PATH=.../export/lib,并重新source或重开 shell。
  • 配置文件位置:指定目录安装后,配置不在/etc/taos/,而在~/tdengine/cfg/taos.cfg中的dataDirlogDirtmpDir也已被脚本改写为安装目录下的data/taoslog/taostmp/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),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询