我的环境是 windows 10 x64,系统上安装了 Visual Studio 2012,如果你的开发环境和我不一样,编译步骤可能也会不同 。
在开始之前,首先要从官网下载 MySQL 源码(下载地址):
文章插图
这里我选择的是 5.6.40 版本,操作系统下拉列表里选 Source Code,OS Version 选择 Windows(Architecture Independent),然后就可以下载打包好的 zip 源码了 。
将源码解压缩到 D:mysql-5.6.40 目录,在编译之前,还需要再安装几个必要软件:
- CMake:CMake 本身并不是编译工具,它是通过编写一种平台无关的 CMakeList.txt 文件来定制编译流程的,然后再根据目标用户的平台进一步生成所需的本地化 Makefile 和工程文件,如 Unix 的 Makefile 或 Windows 的 Visual Studio 工程;
- Bison:MySQL 在执行 SQL 语句时,必然要对 SQL 语句进行解析,一般来说语法解析器会包含两个模块:词法分析和语法规则 。词法分析和语法规则模块有两个较成熟的开源工具 Flex 和 Bison 分别用来解决这两个问题 。MySQL 出于性能和灵活考虑,选择了自己完成词法解析部分,语法规则部分使用了 Bison,所以这里我们还要先安装 Bison 。Bison 的默认安装路径为 C:Program FilesGnuWin32,但是千万不要这样,一定要记得选择一个不带空格的目录,譬如 C:GnuWin32 要不然在后面使用 Visual Studio 编译 MySQL 时会卡死;
- Visual Studio:没什么好说的,Windows 环境下估计没有比它更好的开发工具了吧 。
D:mysql-5.6.40> mkdir project``D:mysql-5.6.40> cd project``D:mysql-5.6.40project> cmake -G "Visual Studio 11 2012 Win64" ..
cmake 的 -G 参数用于指定生成哪种类型的工程文件,这里是 Visual Studio 2012,可以直接输入 cmake -G 查看支持的工程类型 。如果没问题,会在 project 目录下生成一堆文件,其中 MySQL.sln 就是我们要用的工程文件,使用 Visual Studio 打开它 。打开 MySQL.sln 文件,会在 Solution Explorer 看到 130 个项目,其中有一个叫 ALL_BUILD,这个时候如果直接编译,编译会失败,在这之前,我们还要对代码做点修改:
- 首先是 sqlsql_locale.cc 文件,看名字就知道这个文件用于国际化与本土化,这个文件里有各个国家的语言字符,但是这个文件却是 ANSI 编码,所以要将其改成 Unicode 编码;
- 打开 sqlmysqld.cc 文件的第 5239 行,将 DBUG_ASSERT(0) 改成 DBUG_ASSERT(1),要不然调试时会触发断言;
推荐阅读
- MySQL 大批量插入,如何过滤掉重复数据?
- 乌合之众读后感800字?读乌合之众有感500字
- Python制作文本进度条
- 书桌风水禁忌解读
- 乌合之众心理学读后感-群体与个人 乌合之众读后感-
- 飘窗风水禁忌解读
- Mysql内容分页显示
- 手把手带你编译Spring框架源码,让你的学习事半功倍
- 那卡古树茶的特点,古树茶进阶知识
- 小白DIY装机必读,组装电脑选购硬件常见问题与误区解答第五期