TiDB 源码系列之沉浸式编译 TiDB
1.背景
最近刚学习完PCTP,对TiDB的各种读写有了粗略的了解,但是要想研究的更细节一些的东西, 肯定离不开学习源码,学习源码的话大家可以参考官方的TiDB源码系列文章,但是官方的文章 都是18年发的,可能会有些滞后,所以大家可以参考这个以及结合源码去学。 TiDB源码系列解读文章:官方源码解读博客地址 然而学习源码肯定编译调试源码是最有效的学习途径,经过这几天的学习,以及请教开发大佬, 成功编译了TiDB,所以分享给对源码感兴趣的小伙伴。
2.准备工具
Goland白嫖款一个(30天) TiDB 最新款源码tar包一份 Mac一台
3.源码下载
1.首先去github上下载源码:源码下载地址 2.选择自己想要看的版本:这里我以最新的5.4.0版本为例。 
#1.打开终端
#2.到对应目录解压tar包
tar -xzvf tidb-5.4.0.tar.gz
#解压后就会得到一个文件夹
4.编译软件下载配置
由于TiDB是使用的go语言编写的,所以我们使用goland进行编译。 1.下载一个30天白嫖版,有能力的可以直接购买付费版(支持正版) 下载地址:goland下载地址 选择适合自己的电脑系统的进行下载: 



5.打开goland的设置,然后下载最新版的goroot,就会安装所需的module。 



5.编译过程
经过上面的步骤,基本一切环境已经就绪,接下来我们就可以自己编译TiDB数据库。 1.但是会又有一个问题从哪开始运行? 这里还是要借助我开始说的官方源码系列:如何学习TiDB源码 作为一个非专业开发人员,只能借助官网提示去学习。 从我上面的地址,大家可以看到TiDB源码文件对应什么,以及从哪里开始。 
然后下面找到main函数旁边的绿色按钮,大家可以选择debug模式或者直接运行,这里我选择Debug模式,可以看到更多的信息。 
[INFO] [server.go:246] ["server is running MySQL protocol"] [addr=0.0.0.0:4000]说明启动成功了。 
6.最后
运行成功后,大家后续就可以通过对不同的函数打断点,然后看自己的SQL会调用哪些代码中的哪些函数。函数的位置可以参考官方博客源码解析进行断点测试。
原文作者:@Jiawei 发表时间:2022/2/24
原文链接:https://tidb.io/blog/5be1e094



