1. 程式人生 > >TiDB在Centos7上通過原始碼編譯安裝

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


再編譯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