1. 前言
不妨先听听我编译调试mysql-8.0.25的过程经历:
-
经历1:笔记本 win10 下借助另一台centos7系统的主机 通过clion 远程编译调试,这是最麻烦也是坑最多的方式,最终勉勉强强成功。但如果想远程调试又不想用gdb这是唯一的方法。
-
经历2:笔记本安装双系统,硬盘压缩出100G 安装了ubuntu20.04,然后在ubuntu下安装 clion 编译调试 mysql8 ,大获成功,这说明了在linux下编译调试mysql是坑最少的,毕竟 mysql 是专为 linux 而设计的。但是在双系统间切换,不停的开关机,是真受不了(因为我脱离不了windows,又想调试mysql源码)
-
经历3:win10下 采用 clion + cygwin 编译调试,遇到了一个毫无头绪的坑,编译时c++编译器找不到mysql 的 uint 的声明。另外,我认为 cygwin 几乎面临淘汰,毕竟 wsl 才是微软的亲儿子(虽然不知道wsl能活多久),而且直接采用了linux的内核,与linux的生态软件无缝兼容。所以,我决定永远弃用cygwin不再考虑。
-
经历4:win10下 clion + visual studio 2019 编译调试 mysql,遇到的坑也是毫无头绪,至今无法解决。
-
经历5:win10下 clion + wsl 编译调试win平台的 mysql 源码,这时我并没有完全理解wsl是什么,因为我把wsl理解为了虚拟机,其作用是帮我编译成 win平台的 mysql二进制。而这个理解错误导致了我下面的经历,而且这个方案也遇到问题没成功。
-
经历6:win10下 visual studio 2019 直接编译调试 win平台的 mysql源码,这其实是一个可行的方案,但是我用惯了Jetbrain 系列产品,对 vs 实在不熟,不知道怎么调试,网上也没有人告诉我如何用 vs 内置的 cmake 编译mysql ,等一系列原因,我最终放弃了。习惯用 vs 的可以采用此方案。
-
经历7:win10下 clion + wsl 编译调试 linux 平台的 mysql 源码,最终结果就是这篇博文了,这其实是一个非常可行的方案,wsl 正确的理解应该是 类似于 docker, 不能完全理解为虚拟机,微软的心比我想象的要大,其实他们最终的目标是让 linux 平台包括安卓平台的 生态软件 直接在 windows 运行的,所以,wsl 就是想让 linux 与 windows 互相 融合 兼容,分不清彼此,你中有我,我中有你。这个方案,可以让mysql的编译调试像在linux 那样那么简单,唯一的缺点就是比直接在linux系统编译要慢,但这不是我们不用它的理由,因为我们可以换一台优良的笔记本,也可只编译 我们需要的 一部分代码(mysqld)
2. 资源下载
2.1 linux平台的mysql源码包: mysql-8.0.25.tar.gz
下载地址:https://downloads.mysql.com/archives/community/
注:不要下载成 windowns平台的源码包,
Product Version:8.0.25
Operating system :Source Code
OS Version : Generic Linux (Architecture Independent)