此文目的

由于本人最近已经成为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映射即可。

转载于:https://www.cnblogs.com/mantu/p/10743637.html

TiDB之mac上搭建及调试技巧相关推荐

  1. [转] 在Mac上搭建React Native开发环境

    原文链接: http://blog.csdn.net/xiangzhihong8/article/details/53914336 概述 前面我们介绍过在window环境下开发React Native ...

  2. nginx mac 服务器 html,Mac上搭建 nginx 服务器

    因为需要做一个自己的内测分发平台,所以需要搭建一台自己的服务器,于是我选择了使用它 nginx 来搭建服务器,很方便,很简单. 本文主要讲一下如何在 mac 上搭建 nginx 服务器,已经一些简单的 ...

  3. python数据分析开发环境_在MAC上搭建python数据分析开发环境

    最近工作转型到数据开发领域,想在本地搭建一个数据开发环境.自己有三年python开发经验,马上想到使用numpy.scipy.sklearn.pandas搭建一套数据开发环境. ubuntu的环境,百 ...

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

    教你如何在Mac上搭建自己的服务器--Nginx WHAT 本篇主要是基于Nginx在Mac上搭建自己的服务器. 我相信很多朋友肯定是第一次听到Nginx,关于它具有怎样的传奇,这儿肯定说不完也说不透 ...

  5. ios即时通讯客户端开发之-mac上搭建openfire服务器

    CHENYILONG Blog ios即时通讯客户端开发之-mac上搭建openfire服务器 转自:月光的尽头 ios即时通讯客户端开发之-mac上搭建openfire服务器 一.下载并安装open ...

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

    Hello,大家好,今天给大家说说在mac上搭建cordova3.4.0的IOS和android开发环境,首先下载cordova,地址:https://cordova.apache.org/#down ...

  7. mac搭建网站服务器,Mac上搭建Web服务器--Apache

    局域网搭建 Web 服务器测试环境,因为Mac OS X 自带了 Apache 和 PHP 环境,我们只需要简单的启动它就行了. 1.命令:sudo apachectl start Apache服务器 ...

  8. MAC上搭建Windows Phone 8 开发环境——VMware Fusion下Win8 “无法安装Hyper-V, 某个虚拟机监控程序正在运行”问题解决的办法

    最近在试着在mac os上搭建Windows Phone 8的开发调试环境,使用的是VMware Fusion + Win8.1的虚拟环境. 点开VS2013, new 了一个helloWorld, ...

  9. spark python3.6_在mac上搭建spark+ipython环境

    Big Data computing 下课之后回去试着搭建了一下spark环境,在这里记录安装过程中遇到的坑及解决方法和一些待解决的问题. mac上的python环境:Anaconda for pyt ...

最新文章

  1. NYOJ 711 最舒适的路线(并查集)
  2. 征战蓝桥 —— 2014年第五届 —— C/C++A组第9题——斐波那契
  3. onclick进不去ajax,在ajax调用之后处理onclick函数
  4. c语言数组左下角便*,数据结构 - 数组
  5. IDEA 设置文档注释
  6. ulli中自定义属性后取值的问题
  7. Python 程序 可以一直输入 quit_Python二级考试临时抱佛脚专用笔记——(二)基本控制结构的程序设计amp;数据的输入和输出...
  8. EDA技术实用教程VHDL篇--Quartus II 13.1实用教程--工程建立
  9. C语言运算符优先级列表(超详细)
  10. win10关闭最佳分辨率通知
  11. 2018最佳GAN论文回顾
  12. win7休眠的开启与关闭方法
  13. 链表的中间结点-python
  14. 电脑只能上QQ不能开网页
  15. 设计模式--适配器模式
  16. 电信院 创新创业实践二 FPGA Verilog vivado 数码显示管 显示译码器
  17. 智能家居,在互联中看见全屋智能
  18. python (与C的差别)
  19. 抖音程序员HTML相册,快手抖音程序员表白女朋友3D立体相册源码html网页相册代码...
  20. 2048小游戏APP

热门文章

  1. js_加入收藏夹功能
  2. 细颗粒度Singleton模式实现
  3. 每3位新码农中就有2个是单身?来自31000人的调查报告显示……
  4. Java 8 Date-Time API 详解
  5. web常见几种处理图标方法 【转】
  6. Android开发:Kotlin下配置DataBinding
  7. 前端发给后台的参数中含有中文
  8. iOS开发系列--网络开发(转)
  9. Citrix策略处理与优先级
  10. 细说JavaScript中对象的属性和方法