这里难以编译安装的是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
再编译pd
最后编译最难编译的tikv ,编译过程很漫长,需要一个多小时。
cd $GOPATH/src/github.com/pingcap git clone https://github.com/pingcap/tikv cd tikv cargo build编译完成之后,为了使用方便,将tidb,pd,tikv编译后生成的可执行程序(pd-server,tikv-server,tidb-server等)均拷贝到/data/tidb/bin目录下。然后依次启动pd,tikv,tidb,如下所示。
最后就是通过mysql连接测试了。如果本机没有mysql命令,可以通过yum install mysql安装。
mysql -h 127.0.0.1 -u root -P 4000