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映射即可。
转载于:https://www.cnblogs.com/mantu/p/10743637.html
TiDB之mac上搭建及调试技巧相关推荐
- [转] 在Mac上搭建React Native开发环境
原文链接: http://blog.csdn.net/xiangzhihong8/article/details/53914336 概述 前面我们介绍过在window环境下开发React Native ...
- nginx mac 服务器 html,Mac上搭建 nginx 服务器
因为需要做一个自己的内测分发平台,所以需要搭建一台自己的服务器,于是我选择了使用它 nginx 来搭建服务器,很方便,很简单. 本文主要讲一下如何在 mac 上搭建 nginx 服务器,已经一些简单的 ...
- python数据分析开发环境_在MAC上搭建python数据分析开发环境
最近工作转型到数据开发领域,想在本地搭建一个数据开发环境.自己有三年python开发经验,马上想到使用numpy.scipy.sklearn.pandas搭建一套数据开发环境. ubuntu的环境,百 ...
- 教你如何在Mac上搭建自己的服务器——Nginx
教你如何在Mac上搭建自己的服务器--Nginx WHAT 本篇主要是基于Nginx在Mac上搭建自己的服务器. 我相信很多朋友肯定是第一次听到Nginx,关于它具有怎样的传奇,这儿肯定说不完也说不透 ...
- ios即时通讯客户端开发之-mac上搭建openfire服务器
CHENYILONG Blog ios即时通讯客户端开发之-mac上搭建openfire服务器 转自:月光的尽头 ios即时通讯客户端开发之-mac上搭建openfire服务器 一.下载并安装open ...
- 在MAC上搭建cordova3.4.0的IOS和android开发环境
Hello,大家好,今天给大家说说在mac上搭建cordova3.4.0的IOS和android开发环境,首先下载cordova,地址:https://cordova.apache.org/#down ...
- mac搭建网站服务器,Mac上搭建Web服务器--Apache
局域网搭建 Web 服务器测试环境,因为Mac OS X 自带了 Apache 和 PHP 环境,我们只需要简单的启动它就行了. 1.命令:sudo apachectl start Apache服务器 ...
- MAC上搭建Windows Phone 8 开发环境——VMware Fusion下Win8 “无法安装Hyper-V, 某个虚拟机监控程序正在运行”问题解决的办法
最近在试着在mac os上搭建Windows Phone 8的开发调试环境,使用的是VMware Fusion + Win8.1的虚拟环境. 点开VS2013, new 了一个helloWorld, ...
- spark python3.6_在mac上搭建spark+ipython环境
Big Data computing 下课之后回去试着搭建了一下spark环境,在这里记录安装过程中遇到的坑及解决方法和一些待解决的问题. mac上的python环境:Anaconda for pyt ...
最新文章
- NYOJ 711 最舒适的路线(并查集)
- 征战蓝桥 —— 2014年第五届 —— C/C++A组第9题——斐波那契
- onclick进不去ajax,在ajax调用之后处理onclick函数
- c语言数组左下角便*,数据结构 - 数组
- IDEA 设置文档注释
- ulli中自定义属性后取值的问题
- Python 程序 可以一直输入 quit_Python二级考试临时抱佛脚专用笔记——(二)基本控制结构的程序设计amp;数据的输入和输出...
- EDA技术实用教程VHDL篇--Quartus II 13.1实用教程--工程建立
- C语言运算符优先级列表(超详细)
- win10关闭最佳分辨率通知
- 2018最佳GAN论文回顾
- win7休眠的开启与关闭方法
- 链表的中间结点-python
- 电脑只能上QQ不能开网页
- 设计模式--适配器模式
- 电信院 创新创业实践二 FPGA Verilog vivado 数码显示管 显示译码器
- 智能家居,在互联中看见全屋智能
- python (与C的差别)
- 抖音程序员HTML相册,快手抖音程序员表白女朋友3D立体相册源码html网页相册代码...
- 2048小游戏APP