0
3
3
2
博客/.../

# Linux系统部署TiDB完整教程(从下载到实操,新手零踩坑)

 TiDB_曾云林  发表于  2026-03-13

在分布式数据库领域,TiDB 凭借 MySQL 兼容性、分布式扩展性和强一致性,成为中小业务落地和个人学习的首选开源 NewSQL 数据库。它无需复杂的分布式架构知识,通过官方工具 TiUP 就能一键完成部署,极大降低了分布式数据库的使用门槛。

本文将从系统准备、系统优化、TiDB 下载、部署启动,到后续的简易操作,全程手把手教学,覆盖 CentOS 7.6+ / Ubuntu 20.04+ 两种主流 Linux 系统,无论是新手还是运维人员,都能跟着步骤完成部署,少走弯路。

一、前置准备(必做,避免部署踩坑)

1.1 系统环境要求

TiDB 对硬件和系统有基础要求,测试环境和生产环境配置有所区别,新手优先搭建测试环境即可:

  • 操作系统:CentOS 7.6+ / Ubuntu 20.04+(本文以 CentOS 7 为例,Ubuntu 操作会单独标注);
  • 硬件配置(测试环境):2 核 4G 内存,20G 空闲磁盘(生产环境建议 4 核 8G 以上,磁盘根据数据量扩容);
  • 网络要求:服务器能访问外网(用于下载 TiDB 组件和依赖),关闭端口拦截;
  • 权限要求:全程使用 root 用户操作,避免权限不足导致部署失败。

1.2 系统基础配置(关闭限制+安装依赖)

Linux 系统默认的防火墙、SELinux 会拦截 TiDB 端口,依赖包缺失会导致部署失败,先执行以下操作完成基础配置:

1.2.1 关闭防火墙与 SELinux(CentOS)

# 1. 关闭并禁用防火墙(永久生效,避免重启后失效)
systemctl stop firewalld
systemctl disable firewalld

# 2. 临时关闭 SELinux(立即生效)
setenforce 0

# 3. 永久关闭 SELinux(重启后生效,彻底避免拦截)
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config

1.2.2 关闭防火墙(Ubuntu)

# 关闭并禁用防火墙
ufw disable
# 查看防火墙状态,确认已关闭
ufw status

1.2.3 安装依赖包

TiUP(TiDB 官方部署工具)依赖 wget、curl 等工具,提前安装避免后续报错:

# CentOS 系统
yum install -y wget curl openssh-server perl net-tools

# Ubuntu 系统
apt update && apt install -y wget curl openssh-server perl net-tools

二、系统优化(关键步骤,提升TiDB运行稳定性)

默认 Linux 系统的内核参数、内存配置、SSH 连接限制,无法充分发挥 TiDB 性能,甚至会导致部署失败或运行异常。以下优化步骤针对测试环境,生产环境可在此基础上根据硬件调整。

2.1 内核参数优化

编辑系统内核配置文件 /etc/sysctl.conf,添加或修改以下参数,优化内存、网络和磁盘 IO:

vi /etc/sysctl.conf

添加以下内容(直接复制粘贴,无需修改):

# TiDB 内核优化参数
net.core.somaxconn = 32768
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_fin_timeout = 30
net.ipv4.tcp_max_syn_backlog = 16384
fs.file-max = 1000000
vm.swappiness = 0
vm.overcommit_memory = 1

保存退出后,执行以下命令使内核参数立即生效:

sysctl -p

2.2 资源限制优化

编辑 /etc/security/limits.conf,提升文件打开数和进程数限制,避免 TiDB 进程因资源限制被杀死:

vi /etc/security/limits.conf

在文件末尾添加以下内容:

* soft nofile 1000000
* hard nofile 1000000
* soft nproc 1000000
* hard nproc 1000000

2.3 SSH 连接数优化(可选,多节点部署必做)

若后续部署多节点集群,需提升 SSH 连接数限制,避免连接失败:

vi /etc/ssh/sshd_config

找到 MaxSessions 参数,修改为:

MaxSessions 20

重启 SSH 服务使配置生效:

systemctl restart sshd

2.4 重启系统(可选,确保所有优化生效)

若修改了 SELinux、内核参数,建议重启系统,确保所有配置完全生效:

reboot

重启后重新登录 root 用户,继续后续操作。

三、TiDB 下载与部署(核心步骤,用TiUP一键搞定)

TiDB 4.0+ 版本推荐使用 TiUP 部署,TiUP 是官方推出的集群管理工具,能一键完成 TiDB 集群的下载、部署、启动、停止等操作,无需手动配置复杂的组件依赖,新手也能轻松上手。

3.1 下载并安装 TiUP

执行以下命令,下载并安装 TiUP(国内环境推荐此命令,下载速度更快):

curl --proto '=https' --tlsv1.2 -sSf https://tiup-mirrors.pingcap.com/install.sh | sh

安装完成后,执行以下命令设置环境变量,让系统识别 tiup 命令(立即生效):

source /root/.bash_profile

验证 TiUP 是否安装成功,执行以下命令,出现版本号即正常:

tiup --version

示例输出:tiup version 1.14.0 tiup(版本号可能不同,不影响使用)。

3.2 安装 TiUP Cluster 组件

TiUP Cluster 是用于管理 TiDB 集群生命周期的核心组件,执行以下命令安装:

tiup cluster

首次执行会自动下载并安装该组件,等待安装完成即可。

3.3 生成并修改集群配置文件

我们部署 1 个 TiDB 节点 + 1 个 TiKV 节点 + 1 个 PD 节点的最小测试集群(适合学习和小场景验证),先生成默认配置模板:

# 生成配置文件到 /root/tidb-cluster.yaml(路径可自定义,方便后续查找)
tiup cluster template > /root/tidb-cluster.yaml

编辑配置文件,修改 3 处核心信息(新手按步骤改,别乱改其他内容):

vi /root/tidb-cluster.yaml

按 i 进入编辑模式,找到以下内容并修改:

  • user: "tidb":保持默认(TiUP 会自动创建该用户,用于运行 TiDB 进程);
  • host: "10.0.0.1":改为你服务器的内网 IP(用 ifconfig 或 ip addr 查看,例如 192.168.1.100);
  • deploy_dir: "/tidb-deploy" 和 data_dir: "/tidb-data":保持默认路径,或改为你有空闲空间的路径(如 /data/tidb-deploy、/data/tidb-data)。

修改完成后,按 Esc 键,输入 :wq 保存并退出。

3.4 部署 TiDB 集群

先查看当前支持部署的 TiDB 版本,选择稳定版本进行部署(本文以 v7.5.0 为例,可根据最新版本调整):

tiup list tidb

执行部署命令,集群名自定义(本文用 tidb-test):

# 部署集群:--user root 表示用 root 用户执行,-p 会提示输入 root 密码
tiup cluster deploy tidb-test v7.5.0 /root/tidb-cluster.yaml --user root -p

执行后会出现以下交互,按提示操作:

  1. 输入服务器 root 密码(输入时不显示,输完按回车);
  2. 提示 “Do you want to continue? (y/N)”,输入 y 确认;
  3. 等待组件下载和部署(约 3-5 分钟,取决于网速,耐心等待即可)。

3.5 启动 TiDB 集群

部署完成后,执行以下命令启动集群(集群名 tidb-test 要和部署时一致):

tiup cluster start tidb-test

启动成功后,会显示 “Started cluster `tidb-test` successfully”。

3.6 验证集群部署成功

执行以下命令,查看集群节点状态,所有节点 Status 为 Up 即部署成功:

tiup cluster display tidb-test

正常输出会包含以下 3 个核心节点(Status 均为 Up):

  • tidb:TiDB 服务节点(默认端口 4000,负责接收 SQL 请求);
  • tikv:TiKV 存储节点(默认端口 20160,负责数据存储);
  • pd:PD 调度节点(默认端口 2379,负责集群调度)。

四、TiDB 简易操作(新手必备,快速上手)

TiDB 高度兼容 MySQL 协议,因此可以使用 MySQL 客户端连接操作,无需学习新的 SQL 语法,上手成本极低。

4.1 连接 TiDB 数据库

先安装 MySQL 客户端(若已安装,可跳过):

# CentOS 安装 MySQL 客户端
yum install -y mysql

# Ubuntu 安装 MySQL 客户端
apt install -y mysql-client

执行以下命令连接 TiDB(替换为你的服务器 IP):

mysql -h 192.168.1.100 -P 4000 -u root

说明:TiDB 测试环境默认 root 用户无密码,直接回车即可进入交互界面(出现 mysql> 提示符即连接成功)。

4.2 常用 SQL 操作(和 MySQL 完全一致)

连接成功后,执行以下常用操作,快速熟悉 TiDB 的使用:

-- 1. 创建数据库(示例:创建 my_test_db 数据库)
CREATE DATABASE my_test_db;

-- 2. 使用数据库
USE my_test_db;

-- 3. 创建表(示例:创建 users 表,包含 id、name、email 字段)
CREATE TABLE users (
    id BIGINT AUTO_RANDOM PRIMARY KEY,  -- AUTO_RANDOM 是 TiDB 特有,用于分布式场景自增
    name VARCHAR(100) NOT NULL,
    email VARCHAR(255) UNIQUE
);

-- 4. 插入数据
INSERT INTO users (name, email) VALUES 
('张三', 'zhangsan@example.com'),
('李四', 'lisi@example.com');

-- 5. 查询数据
SELECT * FROM users;

-- 6. 更新数据
UPDATE users SET email = 'lisi_new@example.com' WHERE name = '李四';

-- 7. 删除数据
DELETE FROM users WHERE name = '张三';

-- 8. 查看数据库列表
SHOW DATABASES;

-- 9. 查看当前数据库的表列表
SHOW TABLES;

-- 10. 退出连接
EXIT;

4.3 TiDB 集群常用管理操作

通过 TiUP 可以快速管理集群,以下是常用命令(集群名 tidb-test 替换为你的集群名):

# 1. 停止集群
tiup cluster stop tidb-test

# 2. 重启集群
tiup cluster restart tidb-test

# 3. 查看集群日志(查看 tidb 节点日志,可替换为 tikv、pd)
tiup cluster logs tidb-test -N 192.168.1.100:4000

# 4. 销毁集群(谨慎使用,会删除所有数据和部署文件)
tiup cluster destroy tidb-test

# 5. 查看集群健康状态
tiup cluster health tidb-test

五、常见问题排查(新手必看,解决90%的部署问题)

  1. 问题:部署时提示 “Permission denied”(权限不足)? 解决:确保全程使用 root 用户操作,若已用其他用户,执行 su - root 切换到 root 用户。
  2. 问题:启动集群后,tidb 节点 Status 为 Down? 解决:查看日志排查原因,执行 tiup cluster logs tidb-test -N 服务器IP:4000,常见原因是端口被占用或配置文件错误,检查端口是否被占用(netstat -tulnp | grep 4000),若被占用,停止占用进程或修改配置文件端口。
  3. 问题:连接 TiDB 时提示 “Can't connect to MySQL server on '192.168.1.100' (111)”? 解决:检查防火墙是否关闭、TiDB 集群是否启动,执行 systemctl status firewalld 确认防火墙已禁用,执行 tiup cluster display tidb-test 确认 tidb 节点为 Up。
  4. 问题:TiUP 下载组件速度慢? 解决:确保服务器能正常访问外网,若内网环境,可参考 TiUP 离线部署文档,提前下载组件包再部署。

六、总结

本文完整覆盖了 Linux 系统部署 TiDB 的全流程,从系统准备、优化,到 TiUP 下载、集群部署,再到常用的 SQL 操作和集群管理,全程新手友好,所有命令可直接复制执行。

TiDB 的核心优势在于“分布式架构+MySQL 兼容”,无需修改现有 MySQL 应用代码,就能实现分布式扩展,适合从小规模测试逐步迁移到生产环境。对于新手来说,先搭建测试环境,熟悉 TiDB 的操作和特性,再根据业务需求调整配置、扩容集群即可。

如果需要部署多节点集群、离线部署,或进行生产环境优化,可以参考 TiDB 官方文档,后续也会分享更多 TiDB 运维和优化技巧,欢迎关注~

0
3
3
2

版权声明:本文为 TiDB 社区用户原创文章,遵循 CC BY-NC-SA 4.0 版权协议,转载请附上原文出处链接和本声明。

评论
暂无评论