☰
CentOS7.9部署TDengine时序库社区版实战指南:安装、配置、建库、建超级表与验证
2026/10/24 1:55:57 网站建设 项目流程

1、TDengine官网https://www.taosdata.com/2、TDengine TSDB 文档https://docs.taosdata.com/3、TDengine 下载中心https://www.taosdata.com/download-center?product=TDengine+TSDB-OSS&version=3.3.8.8&platform=Docker&architecture=x644、欢迎来到 TDengine 技术社区https://ask.taosdata.com/

5、TDengine TSDB 服务端支持的平台列表https://docs.taosdata.com/reference/supported/?

3.0.7.1 之后的社区版所支持的操作系统范围,可参考本文档,如果使用国产操作系统,请使用企业版本,或者使用 Docker 方式安装。

支持的操作系统范围

说明

TDengine TSDB-OSS 服务端官方支持 CentOS 7.9 及以上版本,因此本文以 CentOS 7.9 为示例进行部署说明。

本文示例统一使用以下示例值,便于直接阅读和替换:

  • 示例主机名:tdnode01

  • 示例 IP:10.10.20.31

  • 示例密码:taosdb#-2026

说明:

  • tdnode01只是示例主机名,实际部署时替换为现场主机名。

  • 10.10.20.31只是示例 IP,实际部署时替换为现场业务 IP。

  • taosdb#-2026为本文统一示例密码,后文 root、monitor、taoskeeper 均统一使用该密码。

执行顺序

修改主机名 → 配置 hosts → 检查资源和时区 → 关闭防火墙 → 测试磁盘 IO → 确认挂载点空间 → 创建 TDengine 目录结构 → 优化系统参数 → 上传并解压安装包 → 配置taos.cfg→ 配置taosadapter/taoskeeper→ 启动服务 → 验证dnodes/mnodes→ 初始化 root 和 monitor 账号 → 建库建表 → 最终验收。


一、部署前初始化

1. 检查并设置主机名

先检查、后决定是否修改

先查看当前主机名:

hostnamectl status hostname

如果当前主机名已经符合命名规范,则无需修改,直接进入下一步2. 检查基础资源。

如果当前主机名不符合规范,再执行修改:

hostnamectl set-hostname 'tdnode01' --static hostname

说明:

  • hostnamectl status:查看当前主机名及相关信息

  • hostname:快速查看当前主机名

  • hostnamectl set-hostname:用于永久修改主机名

  • 示例主机名tdnode01仅为示例,实际部署时请替换为现场规范主机名

主机名建议命名规则:

  • 简短清晰

  • 能体现节点用途

  • 避免中文、空格和特殊字符

  • 建议统一风格,例如:tdnode01、tdnode02、tdnode03

2. 检查基础资源

ip a free -h lscpu lsblk df -h timedatectl

如果时区不正确:

timedatectl set-timezone Asia/Shanghai

3. 配置 hosts

编辑:

vi /etc/hosts

追加示例:

10.10.20.31 tdnode01

验证:

cat /etc/hosts

说明:这里的写法可以理解为<本机业务IP,例如 10.10.20.31> <主机名,例如 tdnode01>。

4. 关闭防火墙

systemctl stop firewalld systemctl disable firewalld systemctl status firewalld

5. 测试磁盘 IO

dd oflag=direct if=/dev/zero of=/home/diskdata1 bs=480k count=100000 dd if=/home/diskdata1 of=/dev/null bs=1M count=10000

说明:

  • 写入测试大于 150MB/s 为正常

  • 读取测试大于 150MB/s 为正常

  • 如果磁盘 IO 低于 150MB/s,需继续排查 RAID、磁盘类型或挂载规划。


二、目录初始化

1. 先查看哪个挂载点空间有富余

lsblk df -h

如果准备使用/home,可单独确认:

df -h /home

2. 确定部署基础目录

优先选择空间富余较大的挂载点作为 TDengine 部署目录。

建议原则:

  • /home空间充足:使用/home/tdengine

  • /data空间充足:使用/data/tdengine

  • /app空间充足:使用/app/tdengine

以下以/home/tdengine为例。

3. 创建目录

mkdir -p /home/tdengine/{data,log,core,soft,tmp,dump} ls -ld /home/tdengine /home/tdengine/*

如果实际使用/app/tdengine,则改为:

mkdir -p /app/tdengine/{data,log,core,soft,tmp,dump} ls -ld /app/tdengine ls -ld /app/tdengine/*

4. 目录说明

  • data:数据目录

  • log:日志目录

  • core:core 文件目录

  • soft:安装包目录

  • tmp:临时目录

  • dump:导出目录

说明:明确建议先看磁盘情况,找到空间大的目录作为dataDir,通常优先考虑/home。


三、系统参数优化

说明:本节更适合作为CentOS 7.9 单机部署场景的系统基线使用,适用于8–16 vCPU、16–64GB 内存这类中小规模单机环境。它的主要作用是提升文件句柄、进程数、端口范围和排障能力,属于通用基线优化,不是针对某一台机器做的专项性能调优。优化主体这几类:fs.file-max、ip_local_port_range、nproc/nofile/stack、core 和 SELinux。

1. 内核参数

echo "fs.file-max = 1048576" >> /etc/sysctl.conf echo "net.ipv4.ip_local_port_range = 10000 65534" >> /etc/sysctl.conf sysctl -p

2. 用户资源限制

echo "* soft nproc 65536" >> /etc/security/limits.conf echo "* soft nofile 1048576" >> /etc/security/limits.conf echo "* soft stack 65536" >> /etc/security/limits.conf echo "* hard nproc 65536" >> /etc/security/limits.conf echo "* hard nofile 1048576" >> /etc/security/limits.conf echo "* hard stack 65536" >> /etc/security/limits.conf echo "root soft nproc 65536" >> /etc/security/limits.conf echo "root soft nofile 1048576" >> /etc/security/limits.conf echo "root soft stack 65536" >> /etc/security/limits.conf echo "root hard nproc 65536" >> /etc/security/limits.conf echo "root hard nofile 1048576" >> /etc/security/limits.conf echo "root hard stack 65536" >> /etc/security/limits.conf

3. core 文件配置

这一步主要是设置 Linux 在程序崩溃时生成 core dump 文件的保存路径和命名规则。

它告诉系统:

以后如果某个进程异常崩溃,需要生成 core 文件,就把文件放到/app/tdengine/core/目录下,并按这个格式命名。

以/home/tdengine为例:

echo "ulimit -c unlimited" >> /etc/profile echo "kernel.core_pattern=/home/tdengine/core/core-%e-%p" >> /etc/sysctl.conf sysctl -p /app下部署的情况,修改路径 echo "kernel.core_pattern=/app/tdengine/core/core-%e-%p" >> /etc/sysctl.conf sysctl -p

4. 验证

echo "ulimit -c unlimited" >> /etc/profile # 永久给新会话用 ulimit -c unlimited # 当前会话立刻生效 ulimit -a | grep core # 检查当前会话 su - root ulimit -a | grep core # 检查新登录会话

5. SELinux

sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
查看SELinux,直接用这几个命令就行: 1)看配置文件里是不是已经改成 disabled grep ^SELINUX= /etc/selinux/config 正常你会看到: SELINUX=disabled 2)看当前系统运行状态 getenforce 或者: sestatus

将配置文件 /etc/selinux/config中所有 SELINUX=enforcing的行替换为 SELINUX=disabled,从而在系统重启后永久禁用 SELinux。

6. 路径一致性说明

本节中,只有kernel.core_pattern这条命令涉及实际目录路径,必须和前面创建的 core 目录保持一致。

如果目录初始化使用的是:

/home/tdengine/{data,log,core,soft,tmp,dump}

那么 core 路径就应写成:

/home/tdengine/core/core-%e-%p

如果实际目录建在/data/tdengine/core,这里也必须同步改成/data/tdengine/core/core-%e-%p。一句话:目录建在哪,core 文件就落在哪,前后必须统一。当前稿子里把 core 路径改成了/home/tdengine/core/...,这和当前目录规划是统一的;


四、安装包下载上传与解压

官网下载地址截图

1. 上传安装包到/tdengine/soft目录

mobaxterm上传文件方法
正在上传中
上传完成​​​​
cd /home/tdengine/soft ls -lh

安装包示例:

tdengine-tsdb-oss-3.3.8.8-linux-x64.tar.gz

2. 解压并安装

tar -zxvf tdengine-tsdb-oss-3.3.8.8-linux-x64.tar.gz cd tdengine-tsdb-oss-3.3.8.8 ./install.sh -e no

说明:将下载的压缩包上传到/home/tdengine/soft后解压,再执行./install.sh -e no。

./install.sh -e no //出现该指令按回车用于跳过安装过程中的所有交互式提示,使安装自动进行


五、核心配置文件 taos.cfg

1. 编辑前先备份

在删除或修改配置前,先备份原配置文件:

cd /etc/taos cp -p /etc/taos/taos.cfg /etc/taos/taos.cfg.bak_$(date +%F_%H%M%S) ls -l /etc/taos/taos.cfg*

2. 编辑配置文件

vi /etc/taos/taos.cfg

3.:d1000的作用说明

进入vi之后,“输入:d1000”。它的作用是:

  • 从当前光标所在行开始,向下删除 1000 行

  • 常用于快速清空原有配置内容

  • 因为它是直接删,所以删除前必须先做备份

更稳的操作习惯:

  1. 先执行备份命令

  2. 进入vi

  3. 输入gg回到第一行

  4. 再输入:d1000

  5. 按i进入插入模式,粘贴新配置

说明:输入 :d1000和输入 i这两个动作,但没解释用途,这里已经补完整了。

4. 输入新配置

firstEp tdnode01:6030 fqdn tdnode01 serverPort 6030 logDir /home/tdengine/log dataDir /home/tdengine/data tempDir /home/tdengine/tmp #numOfCommitThreads 64 #cpu_num #numOfVnodeQueryThreads 8 timezone UTC-8 locale en_US.UTF-8 charset UTF-8 monitor 1 monitorFqdn localhost logKeepDays 10 debugflag 131 keepColumnName 1 countAlwaysReturnValue 1 #supportVnodes 64 #cpu_num slowLogThreshold 10 numOfRpcSessions 50000 ##max 10w maxNumOfDistinctRes 10000000 shellActivityTimer 120 statusInterval 5 assert 0 audit 0 auditFqdn localhost #rpcQueueMemoryAllowed 10737418240 telemetryReporting 0 keepAliveIdle 900 shareConnLimit 10 #3.3.4.0+ #numOfRpcThreads 8 #cpu_num/2,max 16 forceReadConfig 1 #3.3.5.0+ minReservedMemorySize 5120 #3.3.5.0+ MB maxRetryWaitTime 100000 # Once used 2 replica, set this to avoid "Sync leader is unreachable" #arbSetAssignedTimeoutSec 5 enablePasswordPolicy 0 minPasswordLen 6 passwordComplexity 0 enableStrongPassword 0

保存退出:

ESC :wq

验证:

cat /etc/taos/taos.cfg

5. 路径一致性说明

本节里,以下参数必须和你前面创建的目录路径保持一致:

  • logDir↔ 日志目录

  • dataDir↔ 数据目录

  • tempDir↔ 临时目录

也就是说,如果前面目录创建用的是:

/home/tdengine/{data,log,core,soft,tmp,dump}

那这里就必须写成:

logDir /home/tdengine/log dataDir /home/tdengine/data tempDir /home/tdengine/tmp

六、其他组件配置

进入目录:

cd /etc/taos

1. taosadapter 配置

sed -i 's/# path = "\/var\/log\/taos"/path = "\/home\/tdengine\/log"/g' taosadapter.toml sed -i 's/keepDays = 30/keepDays = 10/g' taosadapter.toml cat taosadapter.toml

2. taoskeeper 配置:定义 taoskeeper 使用的账号密码

为与全文密码统一,taoskeeper 密码统一改为taosdb#-2026:

sed -i 's/username = "root"/username = "monitor"/g' taoskeeper.toml sed -i 's/password = "taosdata"/password = "taosdb#-2026"/g' taoskeeper.toml sed -i 's|# path = "/var/log/taos"|path = "/app/tdengine/log"|g' /etc/taos/taoskeeper.toml sed -i 's|keepDays = 30|keepDays = 10|g' /etc/taos/taoskeeper.toml cat taoskeeper.toml

3. 路径一致性说明

本节里,以下路径必须和前面创建的日志目录一致:

path = "/home/tdengine/log"

如果你前面日志目录实际建在/data/tdengine/log,这里也必须同步改成:

path = "/data/tdengine/log"

七、启动服务

1. 启动 taosd

systemctl start taosd systemctl status taosd

2. 启动 taosadapter、taoskeeper

systemctl start taosadapter systemctl start taoskeeper systemctl status taosadapter systemctl status taoskeeper

3. 一键启动方式

/usr/local/taos/bin/start-all.sh


八、节点与服务验证(单机)

1. 如何进入 taos

执行以下命令进入 TDengine 命令行:

taos

说明:

  • 这是最直接的本机登录方式
  • 前提是taosd已正常启动
  • 如果 root 密码已经修改,也可以显式指定账号密码登录,例如:
taos -uroot -p'taosdb#-2026'

2. 验证命令

进入 taos 后执行:

show users; show dnodes; show mnodes;

3. 重点检查

  • show dnodes;是否能正常返回结果
  • 当前唯一节点状态是否为ready
  • show mnodes;是否能正常返回元数据节点信息

说明:
单机场景也建议保留这一步,但更适合称为“节点与服务验证”,本质上是在确认taosd 是否真正可用,而不只是“命令能执行”。


九、初始化账号与授权

taos 或者 taos -uroot -p'taosdb#-2026'

进入 taos 后执行:

创建与“第六步:先定义 taoskeeper 使用的账号密码”之对应的数据库账号

alter user root pass 'taosdb#-2026'; create user monitor pass 'taosdb#-2026'; alter user monitor createdb 1; show users; --业务连接用户: create user szlsuser pass 'taosdb#-2026' sysinfo 0 createdb 0; show users;

monitor就是给 TDengine 监控组件单独准备的数据库登录账号,相当于“监控专用工号”,不是系统用户,也不是数据库核心必须账号。

退出后验证:

taos -uroot -p'taosdb#-2026'

说明:这里已将 root、monitor、后续登录验证密码统一为taosdb#-2026。


十、建库建表

1. 建库建表前服务器资源确认

nproc lscpu | egrep -i 'Model name|CPU\(s\)|Thread|Core|Socket|NUMA' free -h df -hT lsblk -o NAME,SIZE,TYPE,ROTA,MOUNTPOINT,MODEL ulimit -n

按上图这台服务器的配置来看: 16 vCPU 31G 内存 /app 2T 当前是 单机社区版 方案 A:更稳,更适合先上线验证 CREATE DATABASE szlsdb VGROUPS 4 REPLICA 1 BUFFER 256 CACHEMODEL 'both' CACHESIZE 32;

重点关注:

  • CPU 核数

  • 内存大小

  • 数据目录所在挂载点

  • 磁盘类型,特别是是否为 SSD

  • ulimit -n是否过小

2. 建库

登录 TDengine:

taos -h 10.10.20.31 -u root -p"taosdb#-2026"
方案一:推荐配置
CREATE DATABASE cxszlsdb VGROUPS 8 REPLICA 1 BUFFER 256 CACHEMODEL 'both' CACHESIZE 32; SHOW DATABASES; SHOW CREATE DATABASE cxszlsdb;

适用说明:该方案更适用于16 vCPU / 31GB 内存 / 单机这类配置,属于偏稳妥的单机建库参数组合。已经把这一档定义成“适用于 16 vCPU / 31GB 内存 / 单机,偏稳妥”。

方案二:轻量配置
CREATE DATABASE cxszlsdb VGROUPS 4 REPLICA 1 BUFFER 128 CACHEMODEL 'both' CACHESIZE 16; SHOW DATABASES; SHOW CREATE DATABASE cxszlsdb;

适用说明:该方案更适用于4–8 vCPU / 8–16GB 内存 / 单机,或者虽然是 16 vCPU / 31GB 单机,但希望先按更保守、更轻量方式落库的场景。你当前稿子里也是按“资源更保守时使用”来写的。

3. 建超级表

切换数据库:

USE cxszlsdb;

创建FLOAT类型超级表:

CREATE STABLE szls_float ( ts TIMESTAMP, val FLOAT, quality INT ) TAGS ( gysj NCHAR(128), gybm NCHAR(128), aq NCHAR(10), hb NCHAR(10), sb NCHAR(10), ny NCHAR(10), sc NCHAR(10), miaoshu NCHAR(256), tag9 NCHAR(100), tag10 NCHAR(100), tag11 VARCHAR(100), tag12 VARCHAR(100), tag13 VARCHAR(100), tag14 VARCHAR(100), tag15 VARCHAR(100), tag16 VARCHAR(100), tag17 VARCHAR(100), tag18 VARCHAR(100), tag19 VARCHAR(100), tag20 VARCHAR(100) );

创建INT类型超级表:

CREATE STABLE szls_int ( ts TIMESTAMP, val INT, quality INT ) TAGS ( gysj NCHAR(128), gybm NCHAR(128), aq NCHAR(10), hb NCHAR(10), sb NCHAR(10), ny NCHAR(10), sc NCHAR(10), miaoshu NCHAR(256), tag9 NCHAR(100), tag10 NCHAR(100), tag11 VARCHAR(100), tag12 VARCHAR(100), tag13 VARCHAR(100), tag14 VARCHAR(100), tag15 VARCHAR(100), tag16 VARCHAR(100), tag17 VARCHAR(100), tag18 VARCHAR(100), tag19 VARCHAR(100), tag20 VARCHAR(100) );

创建VARCHAR(128)类型超级表:

CREATE STABLE szls_varchar128 ( ts TIMESTAMP, val VARCHAR(128), quality INT ) TAGS ( gysj NCHAR(128), gybm NCHAR(128), aq NCHAR(10), hb NCHAR(10), sb NCHAR(10), ny NCHAR(10), sc NCHAR(10), miaoshu NCHAR(256), tag9 NCHAR(100), tag10 NCHAR(100), tag11 VARCHAR(100), tag12 VARCHAR(100), tag13 VARCHAR(100), tag14 VARCHAR(100), tag15 VARCHAR(100), tag16 VARCHAR(100), tag17 VARCHAR(100), tag18 VARCHAR(100), tag19 VARCHAR(100), tag20 VARCHAR(100) );

4. 查看超级表结构

show stables; DESCRIBE szls_float; DESCRIBE szls_varchar128; DESCRIBE szls_int;


十一、部署完成后验收

1. 系统侧

lscpu free -g lsblk df -TH cat /etc/hosts ip a timedatectl

2. 数据库侧

taos -uroot -p'taosdb#-2026'

进入后执行:

show cluster machines\G; show databases; show stables;

3、注册登录TDengine TSDB-OSS 管理系统

登录地址:http://10.10.20.31:6060/

登录该系统时,提示需要注册才能登录的话,返回服务器执行以下语句。

echo "EXPLORER_SKIP_REGISTER=true" >> /etc/default/taos-explorer systemctl restart taos-explorer

十二、补充处理(按需处理)

1. Explorer 反复注册

这里不需要默认执行,只有 Explorer 出现反复注册时才执行。

echo "EXPLORER_SKIP_REGISTER=true" >> /etc/default/taos-explorer systemctl restart taos-explorer

2. 修改密码时报错

在/etc/taos/taos.cfg末尾增加:

enablePasswordPolicy 0 minPasswordLen 6 passwordComplexity 0 enableStrongPassword 0 forceReadConfig 1

然后重启服务,再执行:

alter user root pass 'taosdb#-2026';

十三、可选:命令快捷方式配置

该步骤为个人运维便捷项,不是部署必做项。
适用于日常频繁登录 TDengine 命令行的场景。若不需要快捷方式,可跳过。

1. 当前 shell 临时生效

以 root 用户为例:

alias taosroot='taos -h 10.10.20.31 -u root -p"taosdb#-2026"'

以 monitor 用户为例:

alias taosmonitor='taos -h 10.10.20.31 -u monitor -p"taosdb#-2026"'

2. 写入~/.bashrc永久生效

echo 'alias taosroot='\''taos -h 10.10.20.31 -u root -p"taosdb#-2026"'\''' >> ~/.bashrc echo 'alias taosmonitor='\''taos -h 10.10.20.31 -u monitor -p"taosdb#-2026"'\''' >> ~/.bashrc source ~/.bashrc

3. 使用说明

  • taosroot:使用 root 账号快速进入 taos
  • taosmonitor:使用 monitor 账号快速进入 taos

4. 注意事项

  • 该方式会将明文密码写入~/.bashrc,仅建议在个人可控运维终端使用
  • 不建议在多人共用账号、堡垒机公共环境或安全要求较高的服务器上使用
  • 如果后续修改了 root 或 monitor 密码,需要同步修改对应 alias

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

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

立即咨询