本文所使用环境为 mac big sur 11.2.3
Fork
登录github
,fork
三大组件 tidb 、 tikv 、 pd 。
使用git clone
将其下载到本地,例如git clone https://github.com/xxxxx/${tidb or tikv or pd}
。
Build
TiDB
进入TiDB
源码目录,执行make
,出现如下内容说明build
成功。
➜ tidb git:(master) make
CGO_ENABLED=1 GO111MODULE=on go build -tags codes -ldflags '-X "github.com/pingcap/parser/mysql.TiDBReleaseVersion=v4.0.0-beta.2-1743-ga2facf8f9" -X "github.com/pingcap/tidb/util/versioninfo.TiDBBuildTS=2021-04-14 06:37:45" -X "github.com/pingcap/tidb/util/versioninfo.TiDBGitHash=a2facf8f9c844acf1e2d28da302559781bc99589" -X "github.com/pingcap/tidb/util/versioninfo.TiDBGitBranch=master" -X "github.com/pingcap/tidb/util/versioninfo.TiDBEdition=Community" ' -o bin/tidb-server tidb-server/main.go
Build TiDB Server successfully!
编译好的binary
是tidb/bin/tidb-server
。
PD
进入PD
源码目录,执行make
,出现如下内容说明build
成功。
+ Fetch TiDB Dashboard Go module
- TiDB Dashboard directory: /Users/yuyang/go/pkg/mod/github.com/pingcap-incubator/tidb-dashboard@v0.0.0-20210104140916-41a0a3a87e75
+ Create asset cache directory
+ Discover TiDB Dashboard release version
- TiDB Dashboard release version: 2021.01.04.1
+ Check embedded assets exists in cache
- Cached archive exists: /Users/yuyang/IdeaProjects/pd/.dashboard_asset_cache/embedded-assets-golang-2021.01.04.1.zip
+ Unpack embedded asset from archive
Archive: /Users/yuyang/IdeaProjects/pd/.dashboard_asset_cache/embedded-assets-golang-2021.01.04.1.zip
inflating: embedded_assets_handler.go
- Unpacked /Users/yuyang/IdeaProjects/pd/pkg/dashboard/uiserver/embedded_assets_handler.go
CGO_ENABLED=1 go build -gcflags '' -ldflags '-X "github.com/tikv/pd/server/versioninfo.PDReleaseVersion=v4.0.0-rc.2-466-g0e15869c-dirty" -X "github.com/tikv/pd/server/versioninfo.PDBuildTS=2021-04-14 06:44:31" -X "github.com/tikv/pd/server/versioninfo.PDGitHash=0e15869c568d0a6db7d2d674cebe7dd9d316985f" -X "github.com/tikv/pd/server/versioninfo.PDGitBranch=HEAD" -X "github.com/tikv/pd/server/versioninfo.PDEdition=Community" -X "github.com/pingcap-incubator/tidb-dashboard/pkg/utils/version.InternalVersion=2021.01.04.1" -X "github.com/pingcap-incubator/tidb-dashboard/pkg/utils/version.Standalone=No" -X "github.com/pingcap-incubator/tidb-dashboard/pkg/utils/version.PDVersion=v4.0.0-rc.2-466-g0e15869c-dirty" -X "github.com/pingcap-incubator/tidb-dashboard/pkg/utils/version.BuildTime=2021-04-14 06:44:31" -X "github.com/pingcap-incubator/tidb-dashboard/pkg/utils/version.BuildGitHash=41a0a3a87e75"' -tags " swagger_server" -o /Users/yuyang/IdeaProjects/pd/bin/pd-server cmd/pd-server/main.go
CGO_ENABLED=0 go build -gcflags '' -ldflags '-X "github.com/tikv/pd/server/versioninfo.PDReleaseVersion=v4.0.0-rc.2-466-g0e15869c-dirty" -X "github.com/tikv/pd/server/versioninfo.PDBuildTS=2021-04-14 06:45:41" -X "github.com/tikv/pd/server/versioninfo.PDGitHash=0e15869c568d0a6db7d2d674cebe7dd9d316985f" -X "github.com/tikv/pd/server/versioninfo.PDGitBranch=HEAD" -X "github.com/tikv/pd/server/versioninfo.PDEdition=Community" -X "github.com/pingcap-incubator/tidb-dashboard/pkg/utils/version.InternalVersion=2021.01.04.1" -X "github.com/pingcap-incubator/tidb-dashboard/pkg/utils/version.Standalone=No" -X "github.com/pingcap-incubator/tidb-dashboard/pkg/utils/version.PDVersion=v4.0.0-rc.2-466-g0e15869c-dirty" -X "github.com/pingcap-incubator/tidb-dashboard/pkg/utils/version.BuildTime=2021-04-14 06:45:42" -X "github.com/pingcap-incubator/tidb-dashboard/pkg/utils/version.BuildGitHash=41a0a3a87e75"' -o /Users/yuyang/IdeaProjects/pd/bin/pd-ctl tools/pd-ctl/main.go
CGO_ENABLED=0 go build -gcflags '' -ldflags '-X "github.com/tikv/pd/server/versioninfo.PDReleaseVersion=v4.0.0-rc.2-466-g0e15869c-dirty" -X "github.com/tikv/pd/server/versioninfo.PDBuildTS=2021-04-14 06:45:54" -X "github.com/tikv/pd/server/versioninfo.PDGitHash=0e15869c568d0a6db7d2d674cebe7dd9d316985f" -X "github.com/tikv/pd/server/versioninfo.PDGitBranch=HEAD" -X "github.com/tikv/pd/server/versioninfo.PDEdition=Community" -X "github.com/pingcap-incubator/tidb-dashboard/pkg/utils/version.InternalVersion=2021.01.04.1" -X "github.com/pingcap-incubator/tidb-dashboard/pkg/utils/version.Standalone=No" -X "github.com/pingcap-incubator/tidb-dashboard/pkg/utils/version.PDVersion=v4.0.0-rc.2-466-g0e15869c-dirty" -X "github.com/pingcap-incubator/tidb-dashboard/pkg/utils/version.BuildTime=2021-04-14 06:45:54" -X "github.com/pingcap-incubator/tidb-dashboard/pkg/utils/version.BuildGitHash=41a0a3a87e75"' -o /Users/yuyang/IdeaProjects/pd/bin/pd-recover tools/pd-recover/main.go
编译好的binary
是pd/bin/pd-server
。
TiKV
TikV
需要Rust
环境,可以使用rustup
配置环境,同时需要cmake
。之后进入TiKV
源码目录,执行make
,编译耗时较长,出现如下内容说明build
成功。
跑完进度条就OK
。
Building [=======================> ] 591/593: tikv-server(bin), tikv-ctl(bin)
Building [=======================> ] 592/593: tikv-ctl(bin)
编译好的binary
是tikv/bin/tikv-server
。
Run
build
成功后,需要安装TiUP
--TiDB
官方的部署工具。参考 在中控机上安装 TiUP 组件 这一节即可。安装完成后,通过tiup playground
命令进行环境搭建,binpath
就是上面提到的二进制文件路径,参考命令:
tiup playground --db.binpath ${tidb_binpath} --kv.binpath ${tikv_binpath} --pd.binpath ${pd_binpath}
出现如下输出,说明搭建成功,TiDB
、dashboard
、grafana
均可通过输出的地址访问了。
Playground Bootstrapping...
Start pd instance
Start tikv instance
Start tidb instance
Waiting for tidb instances ready
127.0.0.1:4000 ... Done
Start tiflash instance
Waiting for tiflash instances ready
127.0.0.1:3930 ... Done
CLUSTER START SUCCESSFULLY, Enjoy it ^-^
To connect TiDB: mysql --host 127.0.0.1 --port 4000 -u root
To view the dashboard: http://127.0.0.1:2379/dashboard
To view the Prometheus: http://127.0.0.1:9090
To view the Grafana: http://127.0.0.1:3000