VS2017 搭建 MySQL 5.7.30开发环境

该文详细介绍了在Windows上编译MySQL5.7.30的准备工作,包括安装CMake、GNU-bison、OpenSSL,设置环境变量,下载并解压MySQL源代码和头文件,以及使用CMake生成VisualStudio项目文件。同时,文章提到了配置MySQL服务器的关键参数,并指出需手动创建相关文件夹和配置启动项目。
摘要由CSDN通过智能技术生成
  1. 准备工作
    安装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.
    其中:加上✲标记的是当前的环境

  2. 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

  1. 打开MySQL.sln
    双击brelease中的MySQL.sln打开即可

  2. 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                                                          # 会话超时时间

注:以上配置文件中有多个属性的值需要进行修改

  1. 根据配置文件创建文件夹
    MySQL不自动创建文件夹,需要手动创建

  2. 配置启动项目
    用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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值