TiDB之mac上搭建及调试技巧

此文目的

由于本人最近已经成为TiDB的粉丝,所以就开始各种研究TiDB的源码,研究源码这个事情,首先就需要在自己电脑上不断的调试及修改。TiDB本身的代码是非常容易编译和调试的,但是要把PD、TiKV集群同时在本机上建立起来,还是有一点难度的。好在pingcap官方提供了docker-compose搭建集群的方式,可以快速的在个人电脑上启动一个TiDB的集群。但是,我要的不只是一个集群,我还希望在我的mac上实时编译调试TiDB服务,这个TiDB服务能够和docker-compose的集群里的PD和TiKV进行实时的通讯。我今天仔细分析了一下,最终总结出两个问题需要解决:

  • PD和TiKV的端口需要暴露给宿主机;
  • 宿主机上的TiDB服务需要解决docker-compose服务内部域名调用的问题;

解决方案

第一个问题比较容易解决,docker本身就提供了解决方案,就是把docker内部的端口映射给宿主机,这样在宿主机上就可以直接访问这个端口。第二个问题,我还是思考了一会,最后决定使用修改本机host的方式来完成映射。

  • mac上需要增加的host如下:
127.0.0.1 pd0
127.0.0.1 pd1
127.0.0.1 pd2
127.0.0.1 tikv0
127.0.0.1 tikv1
127.0.0.1 tikv2

大家一看也就明白了,我就是想把docker集群内部这样的api:pd0:2379,在宿主机上转换成为:127.0.0.1:2379的方式。

  • 拉取docker-compose

由于需要把docker内部的端口映射到宿主机上,因此我修改了官方的docker-compose.yml文件,大家可以直接使用我fork并修改的tidb-docker-compose项目。

git clone https://github.com/mantuliu/tidb-docker-compose.git
  • 创建并启用集群
cd tidb-docker-compose && docker-compose pull
docker-compose up -d
  • 关闭集群
docker-compose down
  • 在mac上启动TiDB服务

我的mac上是下面类似这样的命令:

./bin/tidb-server -P 4001 --status="10081"  --path="127.0.0.1:3379,127.0.0.1:4379,127.0.0.1:5379" --config=./conf/tidb.toml

写在最后

这种方式呢,感觉还是不太完美,但是确实解决了我当前的困境。提升了我目前研究TiDB源码的效率,不必再依赖于具体的集群环境,我走到哪里,都可以随时调试和研究TiDB的源码。后面如果我了解到更NB的方式,会随时分享给大家。虽然文章的标题是mac上的解决方案,但是换汤不换药,在windows平台上也是一样的,增加具体host映射即可。

TiDB之mac上搭建及调试技巧

原文地址:https://www.cnblogs.com/mantu/p/10743637.html

时间: 2024-08-07 09:50:55

TiDB之mac上搭建及调试技巧的相关文章

图文教程:在Mac上搭建Titanium的iOS开发环境

http://mobile.51cto.com/web-317170_all.htm 跨平台开发工具Titanium的兴起之路:HTML 5是最大威胁 比较Titanium和PhoneGap两大iOS移动应用开发框架 跨平台移动Web开发工具 Titanium Mobile简介 图文教程:在Windows 7上搭建Titanium Mobile开发环境 Titanium架构分析图文教程:在Mac上搭建Titanium的iOS开发环境,码迷,mamicode.com

【juincen】mac上搭建php环境

今天是2017年的8月20日,入职云南杜昂网络三天了,因为工作需要,所以看了下PHP,希望在以后能和大家交流学习. Apache是提供http服务的. 在mac上搭建php环境其实是非常简单的,不需要什么集成环境mamp(mac+apache+mysql+php).mac os系统自带了php和apache.我们调出终端工具,敲如下命令: php -v apachectl -v 可以看到我电脑上的php版本是5.6,apache的版本是2.4. 1.配置Apache 然后我们就要修改一个地方,我

在MAC上搭建Redis环境

1. 首先更新Macports,然后安装redis sudo port selfupdate sudo port upgrade outdated sudo port install redis // 启动redis server sudo redis-server // 关闭redis server sudo pkill -9 redis-server 2. 安装php的redis extension cd /usr/local sudo mkdir src cd /usr/local/src

转载 ----MAC 上搭建lua

MAC 上搭建lua 其实mac上搭建lua环境,google上大把资料,我只是整合一下,因为小弟搭建的时候确实碰到一些问题. 下载和安装lua:(转自这里) 1.  下载最新版的lua-5.2.0 请点击,然后解压 2. 运行"终端"进入到该文件夹下  ,主要是cd [文件夹名] 3.在"终端"输入    make macosx   (回车)4.在"终端"输入    make test  (回车)正常情况下会出现: src/lua -vLua

在Mac上搭建React Native开发环境

概述 前面我们介绍过在window环境下开发React Native项目,今天说说怎么在mac上搭建一个RN的开发环境. 配置mac开发环境 基本环境安装 1.先安装Homebrew:用于安装NodeJS和其他工具. 注:Homebrew详解,对这个比较了解的略过,我也是用mac没多久,这里给小白普及下. Homebrew全称Homebrew is the easiest and most flexible way to install the UNIX tools Apple didn't i

MAC上搭建IOS自动化环境

Mac上搭建RF环境步骤(以及一些坑): mac自带python环境,python --version 检查python环境. 注意:         1.不要使用mac自带的python环境,因为自带的是64位的,wxPython需要只有32位的,所以python使用32位的(自己下载32 python 2.7安装).         2.不要卸载mac自带的python环境,mac中的某些应用会用到python         3.安装完32位的python环境之后,命令行验证python的

Mac上搭建Xcode9.0+appium1.6.5过程及链接模拟器测试app

Mac上搭建在ios模拟器上运行测试APP相对在真机上要简单些.不过笔者真的是折腾了2 天了,百度谷歌搜了个遍,大脑快炸了,遇到各种坑,笔者装的是Xode9.0版本, 不过最终还是坚持弄好了.先给大家讲讲完成在模拟器上测试app的详细步骤. 前提: 1.  已安装Xcode8.0及以上 2.  Mac 10.12以上(笔者写文章时的mac最新系统是10.12.6) 3.  已安装appium1.6.5(可以安装桌面版的也可以通过npm命令安装:npm install –g appium) 一. 

在MAC上搭建cordova3.4.0的IOS和android开发环境

Hello,大家好,今天给大家说说在mac上搭建cordova3.4.0的iOS和Android开发环境,首先下载cordova,地址:https://cordova.apache.org/#download 下载成功后解压,首先讲一下IOS的: 首先要保证你的Python是可以使用的,且版本正确,没有问题, 然后将cordova-ios拷贝到home路径下,假如我的用户名为karl,我要将项目创建在桌面上,文件夹名为Hi,项目名为Hi,此时调出终端,运行命令: [plain] view pla

mac 教你如何在Mac上搭建自己的服务器——Nginx

WHAT 本篇主要是基于Nginx在Mac上搭建自己的服务器. 我相信很多朋友肯定是第一次听到Nginx,关于它具有怎样的传奇,这儿肯定说不完也说不透. 有兴趣的朋友可以自行google或者baidu. WHY 为什么要搭建自己的服务器呢. 好处肯定多多,这儿说一条--模拟数据. 很多时候,我们在前端开发的过程中,API接口没有做好. 当我们要铺界面时,如果等待API的开发完成,无疑是件很耽误工作的事情. 还有一点,即使API完成了,我们开发完项目时,需要自测各种极限的数据.例如 约定好返回的是