1. 首页 > 国产数据库教程 > TiDB教程 > 正文

tidb教程FG003-TiDB单机测试环境部署实战

本文档详细介绍TiDB单机测试环境的部署方法,包括环境准备、安装步骤、配置调整和验证测试等内容。风哥教程参考TiDB官方文档快速入门相关内容,适合开发人员和测试人员在本地搭建TiDB测试环境。更多视频教程www.fgedu.net.cn

Part01-基础概念与理论知识

1.1 单机测试环境概念

TiDB单机测试环境是指在单台服务器上部署完整的TiDB集群,包括TiDB、TiKV、PD等组件,用于开发、测试和学习目的。

  • 特点:部署简单、资源占用少、适合快速上手
  • 适用场景:开发测试、功能验证、学习研究
  • 限制:性能有限、不适合生产环境
单机测试环境的优势:

  • 快速部署,几分钟内完成
  • 资源需求低,适合个人电脑
  • 完整的TiDB功能体验
  • 便于学习和测试新特性

1.2 部署方法介绍

TiDB单机测试环境的部署方法主要有:

  • TiUP Playground:官方推荐的快速部署工具
  • Docker:容器化部署
  • 源码编译:适合开发者

1.3 部署前准备

部署前需要准备:

  • 操作系统:Linux、macOS或Windows(WSL)
  • 硬件要求:至少4核CPU、8GB内存、50GB磁盘
  • 网络要求:网络连接正常
  • 依赖软件:SSH、curl等
风哥提示:TiUP Playground是部署单机测试环境的最佳选择,操作简单,功能完整。学习交流加群风哥微信: itpux-com

Part02-生产环境规划与建议

2.1 环境要求

2.1.1 硬件要求

# 单机测试环境硬件要求
– CPU:至少4核
– 内存:至少8GB(推荐16GB)
– 存储:至少50GB可用空间
– 网络:本地网络

# 推荐配置风哥提示:
– CPU:8核
– 内存:16GB
– 存储:100GB SSD
– 网络:千兆网卡

2.1.2 软件要求

# 单机测试环境软件要求
– 操作系统:
– Linux:CentOS 7.3+ / RHEL 7.3+ / Ubuntu 16.04+
– macOS:10.13+
– Windows:WSL 2

– 依赖软件:
– SSH
– curl
– tar
– sudo

# 网络要求
– 本地网络通畅
– 无防火墙限制(或开放必要端口)

2.2 资源规划

# 资源规划

## 端口规划
– TiDB:4000(业务)、10080(状态)
– TiKV:20160(服务)、20180(状态)
– PD:2379(客户端)、2380(集群)
– TiFlash:3930(服务)、20292(状态)

## 目录规划
– 安装目录:/tidb/app
– 数据目录:/tidb/fgdata
– 日志目录:/tidb/log

## 资源限制
– CPU:限制为4-8核
– 内存:限制为8-16GB
– 存储:限制为50-100GB

2.3 网络配置

网络配置要点:

  • 确保本地网络通畅
  • 关闭防火墙或开放必要端口
  • 配置主机名解析
  • 测试网络连通性
生产环境建议:单机测试环境主要用于开发和测试,不建议用于生产环境。学习交流加群风哥QQ113257174

Part03-生产环境项目实施方案

3.1 安装步骤

3.1.1 安装TiUP

# 安装TiUP
$ curl –proto ‘=https’ –tlsv1.2 -sSf https://tiup-mirrors.pingcap.com/install.sh | sh

# 重新加载环境变量
$ source ~/.bash_profile

# 验证TiUP安装
$ tiup –version

# 输出示例
TiUP Version: 1.15.0
Git Commit Hash: abcdef1234
Git Branch: release-1.15
Build Time: 2026-04-01 00:00:00 +0000
Go Version: go1.20.0

3.1.2 使用TiUP Playground部署

# 部署单机测试环境
$ tiup playground

# 输出示例
Starting component `playground`:
> Checking if tiup-playground is installed…
> Installing tiup-playground v1.15.0…
> Starting playground…
> Playground Bootstrapped:
>
> tidb:
> host: 127.0.0.1
> port: 4000
> status: http://127.0.0.1:10080
>
> tikv:学习交流加群风哥QQ113257174
> host: 127.0.0.1
> port: 20160
> status: http://127.0.0.1:20180
>
> pd:
> host: 127.0.0.1
> port: 2379
> status: http://127.0.0.1:2380
>
> playground log: /home/tidb/.tiup/data/playground-12345/log
>
> MySQL client command: mysql -h 127.0.0.1 -P 4000 -u root
> TiDB Dashboard: http://127.0.0.1:2379/dashboard

3.1.3 自定义部署参数

# 自定义部署参数
$ tiup playground –host 0.0.0.0 –db 1 –pd 1 –kv 1 –tiflash 1 –db.port 4000 –pd.port 2379 –kv.port 20160 –tiflash.port 3930

# 说明:
# –host:绑定地址
# –db:TiDB节点数量
# –pd:PD节点数量
# –kv:TiKV节点数量
# –tiflash:TiFlash节点数量
# –db.port:TiDB端口
# –pd.port:PD端口
# –kv.port:TiKV端口
# –tiflash.port:TiFlash端口

# 启动指定版本
$ tiup playground v7.5.0

3.2 配置调整

3.2.1 查看配置文件

# 查看TiUP Playground生成的配置文件
$ ls -la /home/tidb/.tiup/data/playground-*/

# 查看TiDB配置
$ cat /home/tidb/.tiup/data/playground-*/tidb-*/tidb.toml

# 查看TiKV配置
$ cat /home/tidb/.tiup/data/playground-*/tikv-*/tikv.toml

# 查看PD配置
$ cat /home/tidb/.tiup/data/playground-*/pd-*/pd.toml

3.2.2 调整配置参数

# 停止当前Playground
$ Ctrl+C

# 重新启动并调整参数
$ tiup playground –db.config “[performance]\nmax-procs = 4” –kv.config “[performance]\nmax-procs = 4”

# 配置说明:
# –db.config:TiDB配置
# –kv.config:TiKV配置
# –pd.config:PD配置

3.3 验证测试

3.3.1 连接测试

# 使用MySQL客户端连接TiDB
$ mysql -h 127.0.0.1 -P 4000 -u root

# 输出示例
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 1
Server version: 5.7.25-TiDB-v7.5.0 TiDB Server (Apache License 2.0) Community Edition, MySQL 5.7 compatible

Copyright (c) 2000, 2026, Oracle and/or its affiliates.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type ‘help;’ or ‘\h’ for help. Type ‘\c’ to clear the current input statement.

mysql>

3.3.2 功能测试

# 创建数据库
mysql> CREATE DATABASE fgedudb;
Query OK, 1 row affected (0.01 sec)

# 使用数据库
mysql> USE fgedudb;
Database changed

# 创建表
mysql> CREATE TABLE fgedu_users (id INT PRIMARY KEY, name VARCHAR(50), age INT);
Query OK, 0 rows affected (0.03 sec)

# 插入数据
mysql> INSERT INTO fgedu_users VALUES (1, ‘张三’, 25), (2, ‘李四’, 30), (3, ‘王五’, 35);
Query OK, 3 rows affected (0.01 sec)
Records: 3 Duplicates: 0 Warnings: 0

# 查询数据
mysql> SELECT * FROM fgedu_users;
+—-+——–+——+
| id | name | age |
+—-+——–+——+
| 1 | 张三 | 25 |
| 2 | 李四 | 30 |
| 3 | 王五 | 35 |
+—-+——–+——+
3 rows in set (0.00 sec)

# 更新数据
mysql> UPDATE fgedu_users SET age = 26 WHERE id = 1;
Query OK, 1 row affected (0.01 sec)
Rows matched: 1 Changed: 1 Warnings: 0

# 删除数据
mysql> DELETE FROM fgedu_users WHERE id = 3;
Query OK, 1 row affected (0.01 sec)

# 再次查询
mysql> SELECT * FROM fgedu_users;
+—-+——–+——+
| id | name | age |
+—-+——–+——+
| 1 | 张三 | 26 |
| 2 | 李四 | 30 |
+—-+——–+——+
2 rows in set (0.00 sec)

风哥提示:通过基本的SQL操作测试,可以验证TiDB的核心功能是否正常工作。更多学习教程公众号风哥教程itpux_com

Part04-生产案例与实战讲解

4.1 部署实战案例

4.1.1 在CentOS 7上部署

# 在CentOS 7上部署TiDB单机测试环境

## 1. 系统准备
$ yum update -y
$ yum install -y curl tar

## 2. 安装TiUP
$ curl –proto ‘=https’ –tlsv1.2 -sSf https://tiup-mirrors.pingcap.com/install.sh | sh
$ source ~/.bash_profile

## 3. 部署Playground
$ tiup playground

## 4. 验证部署
$ mysql -h 127.0.0.1 -P 4000 -u root -e “SELECT version();”

# 输出示例
+——————–+
| version() |
+——————–+
| 5.7.25-TiDB-v7.5.0 |
+——————–+

4.1.2 在Ubuntu上部署

# 在Ubuntu上部署TiDB单机测试环境

## 1. 系统准备
$ apt update
$ apt install -y curl tar

## 2. 安装TiUP
$ curl –proto ‘=https’ –tlsv1.2 -sSf https://tiup-mirrors.pingcap.com/install.sh | sh
$ source ~/.bashrc

## 3. 部署Playground
$ tiup playground

## 4. 验证部署
$ mysql -h 127.0.0.1 -P 4000 -u root -e “SHOW DATABASES;”

# 输出示例
+——————–+
| Database |
+——————–+
| INFORMATION_SCHEMA |
| METADATA |
| PERFORMANCE_SCHEMA |
| mysql |
| sys |
+——————–+

4.2 功能测试案例

4.2.1 事务测试

# 事务测试
mysql> BEGIN;
Query OK, 0 rows affected (0.00 sec)

mysql> INSERT INTO fgedu_users VALUES (4, ‘赵六’, 40);
Query OK, 1 row affected (0.00 sec)

mysql> UPDATE fgedu_users SET age = 31 WHERE id = 2;
Query OK, 1 row affected (0.00 sec)

mysql> SELECT * FROM fgedu_users;
+—-+——–+——+
| id | name | age |
+—-+——–+——+
| 1 | 张三 | 26 |
| 2 | 李四 | 31 |
| 4 | 赵六 | 40 |
+—-+——–+——+
3 rows in set (0.00 sec)

mysql> COMMIT;
Query OK, 0 rows affected (0.01 sec)

# 验证提交
mysql> SELECT * FROM fgedu_users;
+—-+——–+——+
| id | name | age |
+—-+——–+——+
| 1 | 张三 | 26 |
| 2 | 李四 | 31 |
| 4 | 赵六 | 40 |
+—-+——–+——+
3 rows in set (0.00 sec)

4.2.2 索引测试

# 索引测试
mysql> CREATE INDEX idx_age ON fgedu_users(age);
Query OK, 0 rows affected (0.03 sec)

mysql> EXPLAIN SELECT * FROM fgedu_users WHERE age > 30;
+————————+———-+———–+—————+——————————–+
| id | estRows | task | access object | operator info |
+————————+———-+———–+—————+——————————–+
| TableReader_7 | 2.00 | root | | data:Selection_6 |
| └─Selection_6 | 2.00 | cop[tikv] | | gt(fgedu_users.age, 30) |
| └─IndexScan_5 | 2.00 | cop[tikv] | table:fgedu_users, index:idx_age | keep order:false, stats:pseudo |
+————————+———-+———–+—————+——————————–+
3 rows in set (0.00 sec)

4.3 常见问题排查

4.3.1 端口冲突

# 端口冲突问题

## 问题现象
$ tiup playground
> Error: listen tcp 127.0.0.1:4000: bind: address already in use

## 解决方案
1. 查找占用端口的进程
$ lsof -i :4000

2. 停止占用端口的进程
$ kill -9

3. 重新启动Playground
$ tiup playground –db.port 4001

4.3.2 内存不足

# 内存不足问题

## 问题现象
$ tiup playground
> Error: cannot allocate memory

## 解决方案
1. 检查系统内存
$ free -h

2. 减少节点数量或内存使用
$ tiup playground –db 1 –pd 1 –kv 1 –db.config “[performance]\nmax-procs = 2” –kv.config “[performance]\nmax-procs = 2”

3. 增加系统内存(如果可能)

生产环境建议:在遇到问题时,查看TiUP的日志输出,定位问题原因,然后采取相应的解决措施。from tidb视频:www.itpux.com

Part05-风哥经验总结与分享

5.1 最佳实践

TiDB单机测试环境部署最佳实践:

  • 使用TiUP Playground:官方推荐的快速部署工具
  • 合理分配资源:根据系统资源调整部署参数
  • 定期清理:测试完成后清理环境,避免资源浪费
  • 版本管理:根据需要选择合适的TiDB版本
  • 备份数据:重要测试数据及时备份

5.2 性能调优

# 单机测试环境性能调优

## 1. 调整TiDB参数
$ tiup playground –db.config “[performance]\nmax-procs = 4\n[prepared-plan-cache]\nenable = true\ncapacity = 1000”

## 2. 调整TiKV参数
$ tiup playground –kv.config “[performance]\nmax-procs = 4\n[rocksdb]\nmax-open-files = 2048”

## 3. 调整PD参数
$ tiup playground –pd.config “[schedule]\nmax-snapshot-count = 1\nmax-pending-peer-count = 4”

## 4. 关闭不必要的组件
$ tiup playground –tiflash 0

5.3 使用场景

TiDB单机测试环境的使用场景:

  • 开发测试:开发人员测试应用与TiDB的兼容性
  • 功能验证:验证TiDB的新特性和功能
  • 学习研究:学习TiDB的架构和原理
  • POC测试:进行小规模的概念验证测试
  • 培训教学:用于培训和教学目的
风哥提示:TiDB单机测试环境是学习和测试TiDB的理想环境,但不适合生产部署。在生产环境中,应该使用多节点集群部署。

持续学习:通过单机测试环境,可以快速上手TiDB,掌握基本操作和管理技能,为生产环境部署打下基础。

本文由风哥教程整理发布,仅用于学习测试使用,转载注明出处:http://www.fgedu.net.cn/10327.html

联系我们

在线咨询:点击这里给我发消息

微信号:itpux-com

工作日:9:30-18:30,节假日休息