最近想阅读下MySQL源码,虽然在linux下编译MySQL源码还是很顺利的,但是奈何不习惯在linux下阅读代码,比较喜欢用宇宙第一IDE Visual Studio来阅读调试代码,下面就记录下在windows上用visual studio来编译MySQL 5.7.44的源码。
-
下载mysql源码
浏览器打开网页:https://dev.mysql.com/downloads/
点击MySQL Community Server项进入下载页面:
选择Source Code,版本选5.7.44,OS Version选择windows的zip包,然后点击下面的“Download”按钮开始下载。
-
下载bison-2.4.1-setup.exe(下载路径:https://sourceforge.net/projects/gnuwin32/files/bison/2.4.1/bison-2.4.1-setup.exe/download),安装后,将其安装目录下的bin路径添加到系统环境变量下(安装路径不要带有空格);
-
下载cmake-3.17.2-win64-x64.msi并安装(下载路径:https://github.com/Kitware/CMake/releases/download/v3.17.2/cmake-3.17.2-win64-x64.msi),在CMD下输入cmake -version能看到版本号,如果提示找不到命令,需要将其安装路径添加到系统环境变量下;
-
下载Win64OpenSSL-1_1_1w.msi并安装(下载路径:http://slproweb.com/products/Win32OpenSSL.html),将其安装路径添加到系统环境变量下(安装路径不要带有空格);
-
下载boost源码包boost_1_59_0.tar.gz(下载路径:http://sourceforge.net/projects/boost/files/boost/1.59.0/boost_1_59_0.tar.gz);
-
解压mysql源码,在源码根目录下创建两个文件夹:boost和release,然后把boost_1_59_0.tar.gz压缩包放到boost文件夹里面去;
-
然后进入新建后的release文件夹,在release文件夹下运行下面的命令:
cmake .. -DDOWNLOAD_BOOST=1 -DWITH_BOOST="[mysql源码目录]\boost\boost_1_59_0.tar.gz"
-
成功后,在release目录下就可以看到MySQL.sln文件了。
-
使用Visual Studio 2019打开MySQL.sln文件,将mysqld项目设置为启动项目;
-
打开sql项目下的mysqld.cc,找到方法test_lc_time_sz(大概也就是代码4396行的位置),将其中的assert(0)改为assert(1),也就是打开调试模式;
-
在mysqld项目的属性种,增加启动参数:--console --initialize
-
用记事本打开sql\sql_locale.cc文件,用格式"带有BOM的UTF-8"保存;
-
debug方式运行项目mysqld ,可以看到初始密码,记录下来:
-
再次修改参数,把启动参数后面的--initialize去掉,然后启动,启动成功。
参考资料
https://juejin.cn/post/7110373798716653599
https://www.cnblogs.com/huangxincheng/p/13084736.html
https://blog.csdn.net/weixin_29306011/article/details/113218434
https://www.cnblogs.com/learnspace/articles/14667495.html
https://www.cnblogs.com/rgyu/p/7530918.html
https://www.pianshen.com/article/21982031539/
https://blog.csdn.net/Linjingke32/article/details/85111711