TiDB在Centos7上通过源码编译安装

这里难以编译安装的是tikv,tidb的三大部分tidb,pd,tikv中tidb,pd均是采用go语言编写,安装go语言包即可编译,唯独tikv是采用rust语言写的,他的编译是最复杂的。而且编译环境非常严格。需要的工具也最多:gcc-c++,cmake3,rust(cargo)。以下介绍具体的编译过程。 

以下原文是github上给出的编译tikv所需的系统环境。 

Rust Nightly is required. TiKV is currently tested mainly with rust-nightly-2018-01-12, however we would like to track nightly, so please report new breakage.

github上明确给出了编译tikv时rust,cargo对应的版本号。

# Get rustup from rustup.rs, then in your `tikv` folder:
rustup override set nightly-2018-01-12
cargo +nightly-2018-01-12 install rustfmt-nightly --version 0.3.4

一、根据前面提到需要的环境,先安装cmake3,go

yum install gcc-c++ git cmake3 golang -y 
ln -s /usr/bin/cmake3 /usr/bin/cmake

二、rust的安装,这里不再多介绍,如果不清楚,可以看这里。运气好,可以一步安装完成。

curl https://sh.rustup.rs -sSf | sh -s
rustup override set nightly-2018-01-12
cargo +nightly-2018-01-12 install rustfmt-nightly --version 0.3.4 --force

三、准备编译tidb,pd,tikv的编译目录和环境变量的设置。

设置GOPATH

export GOPATH=/data/tidb 

创建tidb编译所需的目录,一定需要这样设置,不能随便找一个目录,然后克隆代码。

mkdir -p /data/tidb/src/github.com/pingcap

四、先编译tidb

cd $GOPATH/src/github.com/pingcap
git clone https://github.com/pingcap/tidb
gmake

TiDB在Centos7上通过源码编译安装

再编译pd

TiDB在Centos7上通过源码编译安装

最后编译最难编译的tikv ,编译过程很漫长,需要一个多小时。

  cd $GOPATH/src/github.com/pingcap
  git clone https://github.com/pingcap/tikv
  cd tikv
  cargo build

TiDB在Centos7上通过源码编译安装 

编译完成之后,为了使用方便,将tidb,pd,tikv编译后生成的可执行程序(pd-server,tikv-server,tidb-server等)均拷贝到/data/tidb/bin目录下。然后依次启动pd,tikv,tidb,如下所示。

TiDB在Centos7上通过源码编译安装

最后就是通过mysql连接测试了。如果本机没有mysql命令,可以通过yum install mysql安装。

mysql -h 127.0.0.1 -u root -P 4000

TiDB在Centos7上通过源码编译安装