TiDB 一键部署脚本
支持 v8.5 / v8.1 / v7.5,三种部署模式,MySQL 协议兼容
生产级 TiDB 分布式数据库部署脚本,支持 Playground、生产集群、HTAP 混合三种部署模式。基于 TiUP 封装,自动生成拓扑配置并部署集群,支持 TiFlash 列存分析,开箱即用。
核心功能
一键部署
封装 TiUP 工具链,单条命令完成集群拓扑生成、部署、启动全流程
MySQL 协议兼容
完整兼容 MySQL 协议和语法,现有 MySQL 应用无缝接入,迁移零成本
Raft 共识协议
TiKV 基于 Raft 协议实现数据多副本强一致性,保障金融级数据安全
TiFlash 列存
内置 TiFlash 列式存储引擎,实时 HTAP 分析,无需额外 ETL 流程
弹性伸缩
计算/存储分离架构,在线水平扩缩容,业务无感知滚动升级
多系统支持
兼容 RHEL/CentOS/Rocky/openEuler/麒麟/Ubuntu/Debian 等主流操作系统
自动参数调优
根据集群规模自动调优 RocksDB、Raft、调度器等关键参数
内置监控
一键部署 Prometheus + Grafana 监控栈,数百项指标开箱即用
三种部署模式
覆盖从开发体验到生产 HTAP 的全部场景
单机 Playground
适用于快速体验和功能验证。一键启动本地 TiDB Playground,包含 TiDB/TiKV/PD 最小集群,快速上手。
生产集群
适用于生产环境。自动生成 topology.yaml 拓扑文件,通过 TiUP 部署多节点 TiDB/TiKV/PD 集群。
HTAP 混合
适用于需要实时分析的场景。在生产集群基础上额外部署 TiFlash 节点,实现行存+列存 HTAP 能力。
兼容性矩阵
覆盖国内外主流 Linux 发行版
| 类别 | 操作系统 | 支持版本 |
|---|---|---|
| 企业级 Linux | RHEL | 789 |
| CentOS | 78 | |
| Rocky Linux | 89 | |
| AlmaLinux | 89 | |
| Oracle Linux | 789 | |
| 国产操作系统 | openEuler | 20.0322.03 |
| Kylin (麒麟) | V10 | |
| Anolis OS | 8 | |
| Debian 系 | Ubuntu | 20.0422.04 |
| Debian | 1112 |
安装示例
按场景选择最接近你环境的命令,确认前置条件后复制使用
Playground 体验
新手约 5 分钟本地或单机体验 TiDB 最小部署流程
1bash TiDBShellInstall --mode single --tidb-version v8.5生产集群
推荐标准约 15 分钟单机生产或准生产入口,开启监控并固定部署目录
1bash TiDBShellInstall \2 --mode single \3 --tidb-version v8.5 \4 --password 'YourPass123!' \5 --tidb-port 4000 \6 --deploy-dir /tidb-deploy \7 --data-dir /tidb-data \8 --enable-monitoring Y前置准备 (3)
- 部署目录和数据目录容量已确认
- root 密码和服务端口已规划
- Prometheus/Grafana 监控入口已确认
安装完成后 (2)
- 检查 TiDB 4000 端口和监控服务
- 执行一次 MySQL 协议连接和 SQL 冒烟
参数参考手册
脚本支持的所有命令行参数说明
| 参数 | 描述 | 默认值 | 适用模式 |
|---|---|---|---|
| --tidb-version | TiDB 版本 | v8.5 | 单机 |
| --tidb-port | TiDB 端口 | 4000 | 单机 |
| --tikv-port | TiKV 端口 | 20160 | 单机 |
| --pd-port | PD 端口 | 2379 | 单机 |
| --cluster-name | 集群名称 | tidb-cluster | 单机 |
| --password | root 密码(可选) | — | 单机 |
| --deploy-dir | 部署目录 | /tidb-deploy | 单机 |
| --data-dir | 数据目录 | /tidb-data | 单机 |
| --enable-firewall | 自动配置防火墙 | Y | 单机 |
| --enable-monitoring | 部署监控(Prometheus+Grafana) | Y | 单机 |
| --monitor-node | Prometheus 节点 IP | — | 单机 |
| --grafana-node | Grafana 节点 IP | — | 单机 |
| --tidb-nodes | TiDB 节点 IP | — | 集群 |
| --tikv-nodes | TiKV 节点 IP | — | 集群 |
| --pd-nodes | PD 节点 IP | — | 集群 |
| --ssh-port | SSH 端口 | 22 | 集群 |
| --ssh-user | SSH 用户 | tidb | 集群 |
| --ssh-password | 节点 root 密码(自动密钥分发) | — | 集群 |
| --enable-cdc | 启用 TiCDC | N | 集群 |
| --cdc-nodes | TiCDC 节点 IP | — | 集群 |
| --cdc-port | TiCDC 端口 | 8300 | 集群 |
| --cdc-downstream-type | 下游类型 | mysql | 集群 |
| --cdc-downstream-uri | 下游连接 URI | — | 集群 |
| --cdc-changefeed-name | Changefeed 名称 | — | 集群 |
| --cdc-sink-config | Sink 配置文件路径(可选) | — | 集群 |
| --enable-dm | 启用 DM 迁移 | N | 集群 |
| --dm-master-nodes | DM-Master 节点 IP | — | 集群 |
| --dm-worker-nodes | DM-Worker 节点 IP | — | 集群 |
| --dm-master-port | DM-Master 端口 | 8261 | 集群 |
| --dm-worker-port | DM-Worker 端口 | 8262 | 集群 |
| --dm-cluster-name | DM 集群名称 | dm-cluster | 集群 |
| --dm-source-host | MySQL 源库地址 | — | 集群 |
| --dm-source-port | MySQL 源库端口 | 3306 | 集群 |
| --dm-source-user | MySQL 源库用户 | — | 集群 |
| --dm-source-password | MySQL 源库密码 | — | 集群 |
| --dm-source-id | 源标识 (Source ID) | mysql-replica-01 | 集群 |
| --dm-task-mode | 迁移模式 | all | 集群 |
| --dm-task-name | 迁移任务名称 | — | 集群 |
| --dm-target-db | 目标数据库(过滤) | — | 集群 |
| --tiflash-nodes | TiFlash 节点 IP | — | HTAP |
| --tiflash-replicas | TiFlash 副本数 | 1 | HTAP |
| --tiflash-data-dir | TiFlash 数据目录 | — | HTAP |
显示 42 / 42 条参数
已验证安装场景
以下 31 个场景均在物理环境中完成真实安装测试,100% 通过验证。覆盖单机、集群、HTAP、TiCDC、DM 迁移及边界条件。
| ID | 测试场景 | 证据 | 模式 | 版本 | 安装方式 | 节点 | 耗时 | 状态 |
|---|---|---|---|---|---|---|---|---|
| T-1 | 单机 Playground (v8.5.0) | 脚本实测 | 单机 | v8.5.0 | — | 1 | 85s | |
| T-2 | 三节点生产集群 (v8.5.0, 9 组件) | 脚本实测 | 集群 | v8.5.0 | — | 3 | 91s | |
| T-3 | HTAP 混合集群 + TiFlash (v8.5.0) | 脚本实测 | 集群 | v8.5.0 | — | 3 | 240s | |
| T-4 | 单机 Playground (v7.5.0 LTS) | 脚本实测 | 单机 | v7.5.0 | — | 1 | 87s | |
| T-5 | 生产集群 + 在线扩缩容 (v8.5.0) | 脚本实测 | 集群 | v8.5.0 | — | 3 | 210s | |
| T-6 | 单机 Playground (v8.1.0) | 脚本实测 | 单机 | v8.1.0 | — | 1 | 89s | |
| T-7 | TiCDC -> MySQL 下游实时同步 | 脚本实测 | CDC 同步 | v8.5.0 | — | 3 | — | |
| T-8 | TiCDC -> TiDB 下游实时同步 | 脚本实测 | CDC 同步 | v8.5.0 | — | 3 | — | |
| T-9 | TiCDC 仅部署(无 changefeed) | 脚本实测 | CDC 同步 | v8.5.0 | — | 3 | — | |
| T-10 | DM 全量+增量迁移 (all 模式) | 脚本实测 | DM 迁移 | v8.5.0 | — | 3 | — | |
| T-11 | DM 仅全量迁移 (full 模式) | 脚本实测 | DM 迁移 | v8.5.0 | — | 3 | — | |
| T-12 | DM 仅增量同步 (incremental 模式) | 脚本实测 | DM 迁移 | v8.5.0 | — | 3 | — | |
| T-13 | DM 仅部署集群(不配源库) | 脚本实测 | DM 迁移 | v8.5.0 | — | 3 | — | |
| T-14 | CDC single 模式拒绝(预期失败) | 脚本实测 | 边界校验 | v8.5.0 | — | 1 | — | |
| T-15 | DM 缺少必需参数(预期失败) | 脚本实测 | 边界校验 | v8.5.0 | — | 1 | — | |
| T-16 | CDC 无效下游类型(预期失败) | 脚本实测 | 边界校验 | v8.5.0 | — | 1 | — | |
| T-17 | DM 无效任务模式(预期失败) | 脚本实测 | 边界校验 | v8.5.0 | — | 1 | — | |
| T-18 | 自定义端口 + 自定义目录 (single) | 脚本实测 | 边界校验 | v8.5.0 | — | 1 | — | |
| T-19 | 特殊字符密码验证 | 脚本实测 | 边界校验 | v8.5.0 | — | 1 | — | |
| T-20 | 幂等性 — Playground 重复执行 | 脚本实测 | 边界校验 | v8.5.0 | — | 1 | — | |
| T-21 | 集群 + 自定义集群名/目录 + 禁用监控 | 脚本实测 | 集群 | v8.5.0 | — | 3 | — | |
| T-22 | 幂等性 — Cluster 重复执行检测 | 脚本实测 | 边界校验 | v8.5.0 | — | 3 | — | |
| T-23 | CDC + DM 同时启用 | 脚本实测 | CDC 同步 | v8.5.0 | — | 3 | — | |
| T-24 | 自定义 SSH 端口 + CDC/DM 端口 | 脚本实测 | 集群 | v8.5.0 | — | 3 | — | |
| T-25 | hybrid 模式 + 自定义 TiFlash 数据目录 | 脚本实测 | 集群 | v8.5.0 | — | 3 | — | |
| T-26 | 参数校验:cluster 模式缺少 --pd-nodes | 脚本实测 | 边界校验 | v8.5.1 | — | 1 | — | |
| T-27 | 参数校验:无效版本号格式 | 脚本实测 | 边界校验 | v99.99.99 | — | 1 | — | |
| T-28 | 权限校验:非 root 用户执行 | 脚本实测 | 边界校验 | v8.5.1 | — | 1 | — | |
| T-29 | 参数校验:single 模式忽略集群参数 | 脚本实测 | 边界校验 | v8.5.1 | — | 1 | — | |
| T-30 | Cluster 模式 v7.5.0 LTS 三节点部署 | 脚本实测 | 集群 | v7.5.0 | — | 3 | — | |
| T-31 | Hybrid 模式 v8.5.1 + TiFlash 部署 | 脚本实测 | 集群 | v8.5.1 | — | 3 | — |
所有测试在 RHEL 8.10 (x86_64) 环境下执行,集群模式使用三节点 ESXi VM
常见问题
TiDB 和 MySQL 是什么关系?
TiDB 完整兼容 MySQL 5.7/8.0 协议和语法,现有 MySQL 应用几乎无需修改即可接入 TiDB。TiDB 在此基础上提供水平弹性伸缩、分布式事务、HTAP 实时分析等能力。
Playground 和生产集群有什么区别?
Playground 是本地一键体验模式,所有组件运行在单机上,适合学习和功能验证。生产集群将 TiDB/TiKV/PD 分布在多台服务器上,提供真正的高可用和水平扩展能力。
生产集群最少需要几台服务器?
推荐最小配置:3 台 TiKV(数据存储)、3 台 PD(元数据管理)、2 台 TiDB(SQL 计算层)。TiKV 和 PD 可混部,最少 3 台即可。每台建议 8GB+ 内存、SSD 存储。
TiFlash 是什么?什么时候需要?
TiFlash 是 TiDB 的列式存储引擎,实时同步 TiKV 行存数据并转为列存格式,适合 OLAP 分析查询。如果你有实时报表、大数据分析等需求,部署 HTAP 混合模式即可。
脚本和 TiUP 有什么关系?
脚本是对 TiUP 的自动化封装。TiUP 是 PingCAP 官方的集群管理工具,脚本在此基础上自动生成拓扑配置、处理系统依赖、调优参数,简化部署流程。
是否支持在线扩缩容?
支持。TiDB 集群部署后,可以通过 TiUP 在线添加或移除 TiDB/TiKV/TiFlash 节点,数据自动平衡迁移,业务无需停机。
Oracle 安装脚本
同系列 Oracle 数据库一键安装脚本,支持 19c / 21c
MySQL 安装脚本
同系列 MySQL 数据库一键安装脚本,支持 5.7 / 8.0 / 8.4 / 9.0
金仓安装脚本
同系列金仓 KingbaseES 一键安装脚本,支持 V8R6 / V8R3