[关闭]
@Spongcer 2015-03-13T16:15:09.000000Z 字数 2836 阅读 2611

在 Windows 搭建 MySQL 调试环境

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 中,如下所示:

  1. MYSQL_DEV=D:\MyDocuments\VisualStudio\Projects\MySQL
  2. 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
  3. PATH=%MYSQL_COMPILE%;%PATH%

准备 MySQL Src

将下载的 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); 语句,如下所示:

编译 MySQL

打开一个 CMD 命令行窗口,cd 到 D:\MyDocuments\VisualStudio\Projects\MySQL\mysql-5.6.17\mysql-5.6.17 目录中,然后执行如下编译命令即可:

  1. cd /d D:\MyDocuments\VisualStudio\Projects\MySQL\mysql-5.6.17\mysql-5.6.17
  2. 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 版本,使用如下命令即可:

  1. cd /d D:\MyDocuments\VisualStudio\Projects\MySQL\mysql-5.6.17\mysql-5.6.17
  2. 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 ./

编译过程如下:

编译完成后,如下:

调试 MySQL

编译完成后,会在 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 断点,即可进行调试:

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注