mysql-5.7.24源码编译调试环境搭建-window10和visual studio 2019
Posted on 2021-04-16 16:16 echo>>log 阅读(891) 评论(0) 收藏 举报一.目标
window下MySQL源码环境搭建。
二.工具集合
mysql是C++写的,要想在windows上编译,还需要下载几个必备小工具。
mysql-5.7.24.zip
cmake-3.20.1-win64-x64.msi
boost_1_59_0.tar.gz
bison-2.4.1-setup.exe
ActivePerl-5.28.msi
openssl-1.1.1b.tar.gz
windows 10 x64
vs 2019 社区版 16.9 工作负载 使用c++的桌面开发
三.详细安装
1. cmake-3.17.3-win64-x64.msi 和 bison-2.4.1-setup.exe
bison的安装目录不可以有空格
2.安装openssl window10_64
#进入源码目录
perl Configure VC-WIN64A -D_WIN32_WINNT=0x0501 no-asm no-shared --prefix=E:\app\openssl\sdk #--prefix= 指定安装目录
nmake
#依赖vs
nmake install #依赖vs
3.源码目录结构:mysql-5.7.24.zip与boost_1_59_0.tar.gz
D:\work\git\mysql-5\mysql-5.7.24\
bbs
boost_1_59_0
BUILD
client
cmake
cmd-line-utils
dbug
Docs
extra
include
...
4.cmake编译
PS D:\work\git\mysql-5\mysql-5.7.24\bbs>cmake .. -DDOWNLOAD_BOOST=1 -DWITH_BOOST="D:\work\git\mysql-5\mysql-5.7.24\boost_1_59_0"
当看到最后一句 Build files have been written to: D:/work/git/mysql-5/mysql-5.7.24/bbs,恭喜你,MySQL.sln生成好了。
PS D:\work\git\mysql-5\mysql-5.7.24\bbs> ls
目录: D:\work\git\mysql-5\mysql-5.7.24\bbs
Mode LastWriteTime Length Name
---- ------------- ------ ----
d----- 2021/4/15 16:53 archive_output_directory
d----- 2021/4/15 17:26 client
-a---- 2021/4/15 16:43 8950 cmake_install.cmake
-a---- 2021/4/15 16:43 3928 CPackConfig.cmake
-a---- 2021/4/15 16:43 4690 CPackSourceConfig.cmake
-a---- 2021/4/15 16:43 2270 CTestTestfile.cmake
-a---- 2021/4/15 16:43 61818 INFO_BIN.vcxproj
-a---- 2021/4/15 16:43 713 INFO_BIN.vcxproj.filters
-a---- 2021/4/15 16:43 6807 info_macros.cmake
-a---- 2021/4/15 16:43 61818 INFO_SRC.vcxproj
-a---- 2021/4/15 16:43 713 INFO_SRC.vcxproj.filters
-a---- 2021/4/15 16:43 13038 INSTALL.vcxproj
-a---- 2021/4/15 16:43 527 INSTALL.vcxproj.filters
-a---- 2021/4/15 16:43 7165 make_dist.cmake
-a---- 2021/4/15 16:43 246533 MySQL.sln
-a---- 2021/4/15 16:43 13298 PACKAGE.vcxproj
-a---- 2021/4/15 16:43 527 PACKAGE.vcxproj.filt
注意:建议用此命令编译,不用图形化界面
5.打开 MySQL.sln 编译项目
使用window10_x86_64 visual studio 2019,接下来打开MySql.Sln整体编译,需要等个十几分钟,看到下面的输出就算安装成功。
vs 错误列表为空是说明编译成功。
注意:编译前,修改源码D:\work\git\mysql-5\mysql-5.7.24\sql\sql_locale.cc的编码格式为UTF-8+BOM
四. 启动MySql并调试
1. mysql的初始化
这里要做两件事情,第一件事是将mysql的调试模式打开,第二件事就是附加 --console --log_syslog=0 --initialize 启动参数
(1)修改D:\work\git\mysql-5\mysql-5.7.24\sql\mysqld.cc中的 test_lc_time_sz方法中的 DBUG_ASSERT(0); 改成 DBUG_ASSERT(1);
(2)vs的command增加启动参数
选中mysqld工程调试参数增加 --console --initialize --log_syslog=0
(3)选中mysqld, ctrl+f5 开始执行(不调试)
从控制台获取初始密码
2.mysql源码debug
(1)vs的command调整启动参数
--console --log_syslog=0
(2)选中mysqld, f5 开始调试
(3)D:\work\git\mysql-5\mysql-5.7.24\sql\handler.cc中int handler::ha_write_row中8030行增加断点
使用客户端连接MySQL,执行insert语句则进入断点
五. MySQL源码编译调试环境搭建完成
参考:https://www.cnblogs.com/huangxincheng/p/13084736.html
浙公网安备 33010602011771号