1.确保安装了docker和docker-compose
sudo curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
2.编写 Docker Compose 文件
cat > docker-compose.yml <<EOF
version: '3'
services:
pd:
image: pingcap/pd:v7.5.0
ports:
- "2379:2379" # PD 客户端通信端口
- "2380:2380" # PD 集群内部通信端口
volumes:
- ./data/pd:/data # 持久化 PD 数据
command: --name=pd --data-dir=/data/pd --client-urls=http://0.0.0.0:2379 --peer-urls=http://0.0.0.0:2380
tikv:
image: pingcap/tikv:v7.5.0
ports:
- "20160:20160" # TiKV 服务端口
volumes:
- ./data/tikv:/data # 持久化 TiKV 数据
depends_on:
- pd
command: --addr=0.0.0.0:20160 --pd=http://pd:2379 --data-dir=/data/tikv
tidb:
image: pingcap/tidb:v7.5.0
ports:
- "4000:4000" # TiDB MySQL 协议端口
- "10080:10080" # TiDB 状态查询端口
depends_on:
- pd
- tikv
command: --store=tikv --path=http://pd:2379
EOF
3.启动 TiDB 集群
docker-compose up -d
docker-compose ps
4.连接 TiDB 并测试
mysql -h 127.0.0.1 -P 4000 -u root
-- 创建数据库和表
CREATE DATABASE test;
USE test;
CREATE TABLE users (id INT PRIMARY KEY, name VARCHAR(50));
-- 插入数据
INSERT INTO users VALUES (1, 'Alice'), (2, 'Bob');
-- 查询数据
SELECT * FROM users;