@Spongcer
2015-03-13T16:15:09.000000Z
字数 2836
阅读 2739
MySQL
在 MySQL 官网下载 MySQL 源码,本文下载的版本为 mysql-5.6.17.tar.gz,下载地址为:http://downloads.mysql.com/archives/community/,或者到 MySQL 的搜狐镜像站进行下载,地址为:http://mirrors.sohu.com/mysql/
下载 Bison for Windows,下载地址为:http://gnuwin32.sourceforge.net/packages/bison.htm
同时下载 Bison for Windows 所需要的依赖项 bison-2.4.1-dep.zip,下载地址为:http://gnuwin32.sourceforge.net/downlinks/bison-dep-zip.php
最后下载 CMake,本文下载的版本是 cmake-3.1.3-win32-x86.zip,下载地址为:http://www.cmake.org/download/
下载 Visual Studio 2013,下载地址为:http://www.itellyou.cn/
安装 Visual Studio 2013,本文不在赘述。
本文后续所有操作均在 D:\MyDocuments\VisualStudio\Projects\MySQL\ 目录下进行。
将下载好的 bison-2.4.1-bin.zip、bison-2.4.1-dep.zip、cmake-3.1.3-win32-x86.zip 拷贝到 D:\MyDocuments\VisualStudio\Projects\MySQL\Compile\ 目录中,并解压,如下图所示:
配置环境变量,将 bison、bison-dep、cmake 添加到 Path 中,如下所示:
MYSQL_DEV=D:\MyDocuments\VisualStudio\Projects\MySQL
MYSQL_COMPILE=%MYSQL_DEV%\Compile\cmake-3.1.3-win32-x86\bin;%MYSQL_DEV%\Compile\bison-2.4.1-dep\bin;%MYSQL_DEV%\Compile\bison-2.4.1-bin\bin
PATH=%MYSQL_COMPILE%;%PATH%
将下载的 mysql-5.6.17.tar.gz 拷贝到 D:\MyDocuments\VisualStudio\Projects\MySQL\mysql-5.6.17 目录中,并解压,如下图所示:
用记事本打开 mysql-5.6.17\sql\sql_locale.cc 文件,将其以 Unicode 进行另存,并用另存后的 sql_locale.cc 文件替换 mysql-5.6.17\sql\sql_locale.cc。
编辑 mysql-5.6.17\sql\mysqld.cc 文件,注释掉函数 test_lc_time_sz 中,位于 5163 行的 DBUG_ASSERT(0); 语句,如下所示:
打开一个 CMD 命令行窗口,cd 到 D:\MyDocuments\VisualStudio\Projects\MySQL\mysql-5.6.17\mysql-5.6.17 目录中,然后执行如下编译命令即可:
cd /d D:\MyDocuments\VisualStudio\Projects\MySQL\mysql-5.6.17\mysql-5.6.17
cmake -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 ./
如果想要编译 x64 版本,使用如下命令即可:
cd /d D:\MyDocuments\VisualStudio\Projects\MySQL\mysql-5.6.17\mysql-5.6.17
cmake -G "Visual Studio 12 2013 Win64" -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 ./
编译过程如下:
编译完成后,如下:
编译完成后,会在 D:\MyDocuments\VisualStudio\Projects\MySQL\mysql-5.6.17\mysql-5.6.17 目录下生成 MySQL 的 sln 文件以及各个工程的项目文件,用 Visual Studio 2013 打开 MySQL.sln,Rebuild ALL_BUILD 即可,编译完成后,如下所示:
编译后的数据库位于 mysql-5.6.17\sql\data 目录内,需要将其备份,以备后续恢复。
编译后的客户端工具位于 mysql-5.6.17\client\Debug 目录内,可以使用其中的 mysql.exe 作为调试时的客户端工具。
编译后的服务端工具位于 mysql-5.6.17\sql\Debug 目录内,可以通过启动其中的 mysqld.exe 来启动 MySQL 数据库进行调试。
将 mysqld 工程设置为启动项:
并配置调试时的启动参数 --console:
启动 mysqld 进行调试:
在 handle_select 接口处打上断点:
mysql-5.6.17\client\Debug\mysql.exe 工具链接 MySQL 数据库:
连接时,会触发 handle_select 断点,即可进行调试: