-
准备工作
安装CMake
版本:3.17.3
下载地址:https://cmake.org/files/v3.17/cmake-3.17.3-win64-x64.msi
注意事项:安装路径中不能有空格,例如:D:\cmake-3_17_3安装GNU-bison
版本:2.4.1
下载地址:https://nchc.dl.sourceforge.net/project/gnuwin32/bison/2.4.1/bison-2.4.1-setup.exe
注意事项:安装路径中不能有空格,例如:D:\GnuWin32安装Windows版的OpenSSL
版本:1.1.1全量版
下载地址:http://slproweb.com/download/Win64OpenSSL-1_1_1s.exe
注意事项:安装路径中不能有空格,例如:D:\OpenSSL-Win64把上述软件的有关路径加入到当前PATH环境变量,例如:
D:\cmake-3_17_3\bin
D:\GnuWin32
D:\OpenSSL-Win64\bin
注:VS2017打开该项目和CMake时需要用到上述变量直接解压MySQL源代码文件
版本:5.7.30
下载地址:https://downloads.mysql.com/archives/community/
注事事项:直接解压到工作文件夹,不需要另建文件夹补充项目所需的头文件
版本:5.7.30
下载地址:https://downloads.mysql.com/archives/community/
注意事项:
a) Product Version选择5.7.30
b) Operating System选择Microsoft Windows
c) 选择Windows (x86, 32-bit), ZIP Archive(mysql-5.7.30-win32.zip)或者Windows (x86, 64-bit), ZIP Archive(mysql-5.7.30-winx64.zip)
下载完成后,解压: 压缩包 / i n c l u d e 中的以下文件到 {压缩包}/include中的以下文件到 压缩包/include中的以下文件到{源码文件夹}/include中
a) mysqld_ername.h
b) mysqld_error.h
c) sql_state.h在mysql-5.7.30中新建以下文件夹:
boost
brelease下载boost
版本:1.59.0
下载地址:http://sourceforge.net/projects/boost/files/boost/1.59.0/boost_1_59_0.tar.gz
注意事项:下载完成后复制到刚才新建的boost文件夹查询cmake支持的平台参数,具体如下:
cmake /?Generators
The following generators are available on this platform (* marks default):
Visual Studio 16 2019 = Generates Visual Studio 2019 project files.
Use -A option to specify architecture.
✲Visual Studio 15 2017 [arch] = Generates Visual Studio 2017 project files.
Optional [arch] can be “Win64” or “ARM”.
Visual Studio 14 2015 [arch] = Generates Visual Studio 2015 project files.
Optional [arch] can be “Win64” or “ARM”.
Visual Studio 12 2013 [arch] = Generates Visual Studio 2013 project files.
Optional [arch] can be “Win64” or “ARM”.
Visual Studio 11 2012 [arch] = Generates Visual Studio 2012 project files.
Optional [arch] can be “Win64” or “ARM”.
Visual Studio 10 2010 [arch] = Generates Visual Studio 2010 project files.
Optional [arch] can be “Win64” or “IA64”.
Visual Studio 9 2008 [arch] = Generates Visual Studio 2008 project files.
Optional [arch] can be “Win64” or “IA64”.
Borland Makefiles = Generates Borland makefiles.
NMake Makefiles = Generates NMake makefiles.
NMake Makefiles JOM = Generates JOM makefiles.
MSYS Makefiles = Generates MSYS makefiles.
MinGW Makefiles = Generates a make file for use with
mingw32-make.
Unix Makefiles = Generates standard UNIX makefiles.
Green Hills MULTI = Generates Green Hills MULTI files
(experimental, work-in-progress).
Ninja = Generates build.ninja files.
Ninja Multi-Config = Generates build-.ninja files.
Watcom WMake = Generates Watcom WMake makefiles.
CodeBlocks - MinGW Makefiles = Generates CodeBlocks project files.
CodeBlocks - NMake Makefiles = Generates CodeBlocks project files.
CodeBlocks - NMake Makefiles JOM
= Generates CodeBlocks project files.
CodeBlocks - Ninja = Generates CodeBlocks project files.
CodeBlocks - Unix Makefiles = Generates CodeBlocks project files.
CodeLite - MinGW Makefiles = Generates CodeLite project files.
CodeLite - NMake Makefiles = Generates CodeLite project files.
CodeLite - Ninja = Generates CodeLite project files.
CodeLite - Unix Makefiles = Generates CodeLite project files.
Sublime Text 2 - MinGW Makefiles
= Generates Sublime Text 2 project files.
Sublime Text 2 - NMake Makefiles
= Generates Sublime Text 2 project files.
Sublime Text 2 - Ninja = Generates Sublime Text 2 project files.
Sublime Text 2 - Unix Makefiles
= Generates Sublime Text 2 project files.
Kate - MinGW Makefiles = Generates Kate project files.
Kate - NMake Makefiles = Generates Kate project files.
Kate - Ninja = Generates Kate project files.
Kate - Unix Makefiles = Generates Kate project files.
Eclipse CDT4 - NMake Makefiles
= Generates Eclipse CDT 4.0 project files.
Eclipse CDT4 - MinGW Makefiles
= Generates Eclipse CDT 4.0 project files.
Eclipse CDT4 - Ninja = Generates Eclipse CDT 4.0 project files.
Eclipse CDT4 - Unix Makefiles= Generates Eclipse CDT 4.0 project files.
其中:加上✲标记的是当前的环境 -
cmake
在控制台进入到刚才新建的brelease文件夹,执行cmake,如果希望进行32位编译可以移除“-G “Visual Studio 15 2017 Win64””参数,这里是不希望进行32位编译,例如:
cmake .. -DDOWNLOAD_BOOST=1 -DWITH_BOOST="E:\workspace\mysql-5.7.30\boost\boost_1_59_0.tar.gz" -G "Visual Studio 15 2017 Win64"
注:-G "Visual Studio 15 2017 Win64"参数的值可参见cmake的参数
当在控制台看到类似以下的内容时,说明cmake执行正常结束
– Build files have been written to: E:/workspace/mysql-5.7.30/brelease
-
打开MySQL.sln
双击brelease中的MySQL.sln打开即可 -
MySQL服务端配置
[mysqld]
auto-increment-increment = 1 # 自增量
auto-increment-offset = 1 # 自增起始值
autocommit=FALSE # 不自动提交事务
basedir=E:/MySQL5Instance/mysql5_7_30/instance1 # 自定义的安装文件夹,其实不是安装文件夹,只是把share文件夹复制到了这里
bind-address=127.0.0.1 # 监听地址
character-set-filesystem=binary # 文件系统的字符集
############################## binary log ##############################
binlog-format=ROW # binary log的格式
log-bin=E:/MySQL5Instance/bin/01/mysqld-binary.log # binary log的路径
max-binlog-size=100m # binary log文件兆字节数
binlog-cache-size=4m
max-binlog-cache-size=512m
expire-logs-days=0
server-id=01 # 服务ID
############################## binary log ############################## #
character-set-server=utf8 # 字符集
character-sets-dir=E:/MySQL5Instance/mysql5_7_30/instance1/share/charsets # 字符集所在的绝对路径
collation-server=utf8_unicode_ci # 服务端字符集
connect-timeout=30 # 连接超时时间
daemonize=FALSE # 是否后台运行
datadir=E:/MySQL5Instance/dat/01 # 数据文件夹
date-format=%Y-%m-%d # 日期格式
default-storage-engine=InnoDB # 默认存储引擎
default-time-zone='-5:00' # 时区
default-tmp-storage-engine=InnoDB # 临时表默认存储引擎
general-log=false # 创建日志
general-log-file=E:/MySQL5Instance/log/01/mysqld.log # 输出日志路径
init-connect='SET NAMES utf8' # 客户端连接后执行的语句
lc-messages=en_US # 消息的语言和区域信息
lc-messages-dir=E:/MySQL5Instance/mysql5_7_30/instance1/share # 消息的语言和区域信息的路径
log-error=E:/MySQL5Instance/err/01/mysqld-error.log # 错误日志输出
pid-file=E:/MySQL5Instance/pid/01/mysqld.pid # PID
plugin-dir=E:/MySQL5Instance/mysql5_7_30/instance1/lib/plugin # plugin的绝对路径
log-syslog=0
port=3001 # 监听端口
relay-log=E:/MySQL5Instance/relay/01/mysqld-relay.log # relay日志的绝对路径
relay-log-info-file=E:/MySQL5Instance/relay/01/mysqld-relay-info.log # relay-info日志的绝对路径
slow-launch-time=2 # 慢查询时长
slow-query-log-file=E:/MySQL5Instance/slow/01/mysqld-slow-query.log # 慢查询日志绝对路径
socket=E:/MySQL5Instance/socket/01/mysqld.sock # socket文件绝对路径
time-format=%H-%i-%s # 时间格式
tmpdir=E:/MySQL5Instance/tmp/01 # 临时文件夹
wait-timeout=900 # 会话超时时间
注:以上配置文件中有多个属性的值需要进行修改
-
根据配置文件创建文件夹
MySQL不自动创建文件夹,需要手动创建 -
配置启动项目
用Visual Studio 2017打开MySQL.sln后,如下图
找到mysqld模块,右键 --> 设为启动项目
右键mysqld模块 --> 属性 --> 配置属性 --> 调试 --> 命令参数,填写mysqld启动时的参数,例如:
--defaults-file=E:\MySQL5Instance\cfg\01\my.ini --console --initialize
按 F5就可以调试程序
7. 参考
https:// www.cnblogs.com/huangxincheng/p/13084736.html