1、安装依赖环境
本文介绍的是Windows平台编译环境搭建,安装过程中路径尽量不要有空格,避免踩坑。
- Visual Studio,版本:2019
- MySQL源码,版本:5.7.35
- cmake,版本:3.22.0,下载地址:http://www.cmake.org/cmake/resources/software.html
- bison,版本:2.4.1,下载地址:http://downloads.sourceforge.net/gnuwin32/bison-2.4.1-bin.zip
- bison-deps,版本:2.4.1,下载地址:http://gnuwin32.sourceforge.net/downlinks/bison-dep-zip.php
- boost,版本:1.59.0,下载地址:http://sourceforge.net/projects/boost/files/boost/1.59.0/boost_1_59_0.zip
- openssl,版本:1.1.1m,下载地址:https://slproweb.com/download/Win64OpenSSL-1_1_1m.msi
安装后需要设置环境变量:
2、生成VS解决方案
进入mysql源码目录执行命令,其中参数WITH_BOOST设置为boost安装目录:
cmake -G "Visual Studio 16 2019" -DWITH_BOOST=D:\works\boost_1_59_0 -DWITH_EXAMPLE_STORAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 -DWITH_ARCHIVE_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_MYISAMMRG_STORAGE_ENGINE=1 -DWITH_HEAP_STORAGE_ENGINE=1 -DWITH_CSV_STORAGE_ENGINE=1 -DWITH_PARTITION_STORAGE_ENGINE=1 -DWITH_PERFSCHEMA_STORAGE_ENGINE=1 -DWITH_NDBCLUSTER_STORAGE_ENGINE=0 -DWITH_DEBUG=1 ./
3、VS打开MySQL.sln,将mysqld设为启动项目
4、调整代码和配置
- 将sql/sql_locale.cc文件转换为utf-8编码,可以使用notepad++打开该文件,选择使用utf-8 with bom编码,然后保存。
- 将sql/mysqld.cc文件中函数test_lc_time_sz的以下内容注释掉:
- 选中mysqld项目,配置启动参数:项目=》配置属性=》调试=》命令参数加上--explicit_defaults_for_timestamp --skip-grant-tables --datadir D:\works\bdc\mysql-server\data。数据目录自定义,但需要提前创建好,否则启动报错。
5、编译调试
6、解决setlocal错误
以上编译调试会遇到setlocal错误:
解决方式:选中mysqld项目,选择项目-》属性-》生成事件-》在生成中使用,将"是"改为"否"。
7、以上启动是没有初始化并且没有权限管理的服务,如需要初始化,步骤为:
- 根据之前的方式先编译一个mysqld出来,在sql/Debug目录中
- 以管理员身份开启命令行然后执行初始化:.\mysqld.exe --initialize-insecure --explicit_defaults_for_timestamp --datadir D:\works\bdc\mysql-server\data。说明:数据目录自定义,需要清空或删除目录,否则会提示目录不为空。
- 删除之前设置的启动命令参数:--skip-grant-tables
- 调试运行mysqld
- mysql -u root -p //连接mysqld,初始没有密码
- 设置密码:mysql> use mysql;
mysql> alter user 'root'@'localhost' identified with mysql_native_password by '12345';
文章评论