# Tidb 部署一个多节点集群

# 假设我们打算在 7 台主机上部署一个 TiDB 集群:

主机名 IP 部署服务 数据盘挂载

host1 192.168.1.101 PD1         /data

host2 192.168.1.102 PD2         /data

host3 192.168.1.103 PD3         /data

host4 192.168.1.104 TiKV1 /data

host5 192.168.1.105 TiKV2 /data

host6 192.168.1.106 TiKV3 /data

host7 192.168.1.107 TiDB1 /data

host8 192.168.1.108 TiDB2 /data

host9 192.168.1.109 TiDB3 /data

host10 192.168.1.110 tispark-master  /data

host11 192.168.1.111 tispark-slave  /data


# 启动 PD


应用: tidb -> 添加服务: pd1

镜像: pingcap/pd:latest

环境变量:

name = "pd1"

data-dir = "/data/pd1"

client-urls = "http://0.0.0.0:2379"

advertise-client-urls = "http://pd1:2379"

peer-urls = "http://0.0.0.0:2380"

advertise-peer-urls = "http://pd1:2380"

initial-cluster = "pd1=http://pd1:2380,pd2=http://pd2:2380,pd3=http://pd3:2380"

log-file = "/logs/pd1.logs"

log-level = "info"

cluster-id = "1"

data-dir = "/data/pd1"

config = "/pd.toml"

卷:

/etc/localtime:/etc/localtime:ro

/data/file/logs/tidb:/logs

/data/db/tidb:/data

/data/docker/mysql/tidb/pd.toml:/pd.toml:ro

 

应用: tidb -> 添加服务: pd2

镜像: pingcap/pd:latest

环境变量:

name = "pd2"

data-dir = "/data/pd2"

client-urls = "http://0.0.0.0:2379"

advertise-client-urls = "http://pd2:2379"

peer-urls = "http://0.0.0.0:2380"

advertise-peer-urls = "http://pd2:2380"

initial-cluster = "pd1=http://pd1:2380,pd2=http://pd2:2380,pd3=http://pd3:2380"

log-file = "/logs/pd2.logs"

log-level = "info"

cluster-id = "1"

data-dir = "/data/pd2"

config = "/pd.toml"

卷:

/etc/localtime:/etc/localtime:ro

/data/file/logs/tidb:/logs

/data/db/tidb:/data

/data/docker/mysql/tidb/pd.toml:/pd.toml:ro

 

应用: tidb -> 添加服务: pd3

镜像: pingcap/pd:latest

环境变量:

name = "pd3"

data-dir = "/data/pd3"

client-urls = "http://0.0.0.0:2379"

advertise-client-urls = "http://pd3:2379"

peer-urls = "http://0.0.0.0:2380"

advertise-peer-urls = "http://pd3:2380"

initial-cluster = "pd1=http://pd1:2380,pd2=http://pd2:2380,pd3=http://pd3:2380"

log-file = "/logs/pd3.logs"

log-level = "info"

cluster-id = "1"

data-dir = "/data/pd3"

config = "/pd.toml"

卷:

/etc/localtime:/etc/localtime:ro

/data/file/logs/tidb:/logs

/data/db/tidb:/data

/data/docker/mysql/tidb/pd.toml:/pd.toml:ro

 

# 启动 TiKV

 

应用: tidb -> 添加服务: tikv1

镜像: pingcap/tikv:latest

环境变量:

addr = "0.0.0.0:20160"

advertise-addr = "tikv1:20160"

data-dir = "/data/tikv1"

pd = "pd1:2379,pd2:2379,pd3:2379"

log-file = "/logs/tikv1.logs"

config = "/tikv.toml"

卷:

/etc/localtime:/etc/localtime:ro

/data/file/logs/tidb:/logs

/data/db/tidb:/data

/data/docker/mysql/tidb/tikv.toml:/tikv.toml:ro


应用: tidb -> 添加服务: tikv2

镜像: pingcap/tikv:latest

环境变量:

addr = "0.0.0.0:20160"

advertise-addr = "tikv2:20160"

data-dir = "/data/tikv2"

pd = "pd1:2379,pd2:2379,pd3:2379"

log-file = "/logs/tikv2.logs"

config = "/tikv.toml"

卷:

/etc/localtime:/etc/localtime:ro

/data/file/logs/tidb:/logs

/data/db/tidb:/data

/data/docker/mysql/tidb/tikv.toml:/tikv.toml:ro 


应用: tidb -> 添加服务: tikv3

镜像: pingcap/tikv:latest

环境变量:

addr = "0.0.0.0:20160"

advertise-addr = "tikv3:20160"

data-dir = "/data/tikv3"

pd = "pd1:2379,pd2:2379,pd3:2379"

log-file = "/logs/tikv3.logs"

config = "/tikv.toml"

卷:

/etc/localtime:/etc/localtime:ro

/data/file/logs/tidb:/logs

/data/db/tidb:/data

/data/docker/mysql/tidb/tikv.toml:/tikv.toml:ro

 

# 启动 TiDB

 

应用: tidb -> 添加服务: tidb1

镜像: pingcap/tidb:latest

环境变量:

store = "tikv"

path = "pd1:2379,pd2:2379,pd3:2379"

log-file = "/logs/tidb1.logs"

advertise-address = "tidb1"

enable-binlog = "true"

config = "/tidb.toml"

卷:

/etc/localtime:/etc/localtime:ro

/data/file/logs/tidb:/logs

/data/file:/home/file

/data/docker/mysql/tidb/tidb.toml:/tidb.toml:ro


应用: tidb -> 添加服务: tidb2

镜像: pingcap/tidb:latest

环境变量:

store = "tikv"

path = "pd1:2379,pd2:2379,pd3:2379"

log-file = "/logs/tidb2.logs"

advertise-address = "tidb2"

enable-binlog = "true"

config = "/tidb.toml"

卷:

/etc/localtime:/etc/localtime:ro

/data/file/logs/tidb:/logs

/data/file:/home/file

/data/docker/mysql/tidb/tidb.toml:/tidb.toml:ro

 

应用: tidb -> 添加服务: tidb3

镜像: pingcap/tidb:latest

环境变量:

store = "tikv"

path = "pd1:2379,pd2:2379,pd3:2379"

log-file = "/logs/tidb3.logs"

advertise-address = "tidb3"

enable-binlog = "true"

config = "/tidb.toml"

卷:

/etc/localtime:/etc/localtime:ro

/data/file/logs/tidb:/logs

/data/file:/home/file

/data/docker/mysql/tidb/tidb.toml:/tidb.toml:ro


# tidb1,tidb2,tidb3: 安装mysql客户端

apk update  

apk --update --no-cache add net-tools git curl axel wget vim  

apk --update --no-cache add unzip zip geoip cmake autoconf automake libtool go

apk add --no-cache gcc g++ python python-dev py-pip mysql-dev linux-headers libffi-dev

apk --update --no-cache add geoip-dev pcre gd pcre-dev zlib-dev build-base linux-headers libedit libxml2 musl zlib libxslt libxslt-dev gd-dev libstdc++ libgcc patch logrotate supervisor inotify-tools

apk update && apk upgrade

apk add --no-cache mysql-client


mysql -h 127.0.0.1 -P 4000 -u root -D test

show databases;

select tidb_version();

set @@tidb_general_log = 1;                                                                         # 会记录所有 sql 语句

SET PASSWORD FOR 'root'@'%' = 'wdqdmm@r';                                         # 修改root密码

CREATE USER 'ihunter'@'%'  IDENTIFIED BY 'wdqdmm@m';                        # 增加用户

GRANT ALL PRIVILEGES ON *.* TO 'ihunter'@'%' WITH GRANT OPTION;    # 给用户授权

SHOW GRANTS FOR 'ihunter'@'%';     # 显示授权情况

DROP USER 'ihunter'@'%';         # 删除用户


mysql -h 127.0.0.1 -P 4000 -uroot -pwdqdmm@r  -D test


签名:这个人很懒,什么也没有留下!
最新回复 (0)
返回