TiDB 安装部署, 以及作为 MySQL Slave 实现实时数据同步
# 安装rust
https://abc.htmltoo.com/thread-45934.htm
# 安装protobuf
https://abc.htmltoo.com/thread-45935.htm
# 安装golang
https://abc.htmltoo.com/thread-45936.htm
# 安装环境
apt-get install -y cmake python
apt-get install -y build-essential autoconf automake libtool
export GOPATH=/data/tidb
mkdir -p /data/tidb/src/github.com/pingcap
cd $GOPATH/src/github.com/pingcap
# 编译tidb
git clone https://github.com/pingcap/tidb
cd tidb
gmake
cp bin/tidb-server /usr/local/bin
# 编译pd
cd ../
git clone https://github.com/pingcap/pd
cd pd
gmake or make build
cp bin/pd-server /usr/local/bin
# 安装RocksDB https://github.com/facebook/rocksdb/releases
cd /data/file/soft/src/go/
apt-get update
apt-get install libgflags-dev libsnappy-dev zlib1g-dev libbz2-dev liblz4-dev -y
wget https://github.com/facebook/rocksdb/archive/v6.6.4.tar.gz
tar xzvf v6.6.4.tar.gz && rm -rf tar xzvf v6.6.4.tar.gz
cd rocksdb-6.6.4/
make shared_lib -j4
cp librocksdb.so.6.6.4 /usr/local/lib
ln -fs /usr/local/lib/librocksdb.so.6.6.4 /usr/local/lib/librocksdb.so
ln -fs /usr/local/lib/librocksdb.so.6.6.4 /usr/local/lib/librocksdb.so.6
ln -fs /usr/local/lib/librocksdb.so.6.6.4 /usr/local/lib/librocksdb.so.6.6
ldconfig
# 安装tikv
cd /data/tidb/src/github.com/pingcap
git clone https://github.com/pingcap/tikv
cd tikv
source /etc/profile
$HOME/.cargo/bin/cargo build --release
cp target/release/tikv-server /usr/local/bin or /tikv-server
cargo clean
or # 通过rust安装tikv
应用: mysql -> 添加服务: tikv
镜像: rust:latest
命令:
TZ=/etc/localtime
卷:
/etc/localtime:/etc/localtime:ro
/data/file:/data/file
/data/docker/mysql/tidb/data:/home/data
端口:
保存ip: 升级或替换 不变
主机名: 使用容器名称
进入容器:
apt-get update -y
apt-get install -y wget vim net-tools curl git cron axel zip unzip
apt-get install -y libpcre3 libpcre3-dev openssl libssl-dev zlib1g-dev # nginx
apt-get install -y cmake golang python
apt-get install -y build-essential autoconf automake libtool
apt-get dist-upgrade -y
apt-get upgrade -y
apt autoremove
apt clean
mkdir -p /data/tidb/src/github.com/pingcap
cd /data/tidb/src/github.com/pingcap
git clone https://github.com/pingcap/tikv
cd tikv
cargo build --release
cp target/release/tikv-server /usr/local/bin or /tikv-server
cargo clean
# 安装mysql客户端
apt-get install mysql-client -y
mysql -h 127.0.0.1 -P 4000 -u root -D test
grant all privileges on *.* to 'root'@'localhost' identified by 'm' with grant option;
grant all privileges on *.* to 'root'@'127.0.0.1' identified by 'm' with grant option;
grant all privileges on *.* to 'ihunter'@'%' identified by 'm' with grant option;
flush privileges;
# 单机启动
pd-server --data-dir=/home/data/pd --log-file=/data/file/logs/tidb/pd.log &
tikv-server --pd="127.0.0.1:2379" --data-dir=/home/tidb/tikv --log-file=/data/file/logs/tidb/tikv.log &
tidb-server --store=tikv --path="127.0.0.1:2379" --log-file=/data/file/logs/tidb/tidb.log &
# 集群配置启动
cd /data/file/soft/src/tidb-latest-linux-amd64
#启动PD
./bin/pd-server --data-dir=/home/data/pdtest0 --log-file=/data/file/logs/tidb/pdtest0.log & 10.42.197.207
./bin/pd-server --data-dir=/home/data/pdtest1 --log-file=/data/file/logs/tidb/pdtest1.log & 10.42.14.172
...
#启动TiKV
./bin/tikv-server --addr 0.0.0.0:20160 --advertise-addr 10.42.245.189:20160 --pd-endpoints 10.42.197.207:2379,10.42.14.172:2379 --data-dir /home/tidb/tikvtest0 --log-file /data/file/logs/tidb/tikvtest0.log &
...
#启动tidb
./bin/tidb-server --store=tikv --path="pdtest0:2379,pdtest1:2379"
...
# 检测进程
ps -ef | grep tidb
ps -ef | grep pd
ps -ef | grep kv