搜尋
首頁資料庫mysql教程Win7+VS2010:mysql 源码编译与调试_MySQL

win7

win7+vs2010 源码编译 mysql

最近由于在实习,工作重点在于一些数据库的开发,为了更好的理解数据库的实现机制,目前萌生了要研究一下 mysql 数据库源码的想法。那么好吧,说干就干,首先我们需要实现对源码的编译,这里我们选择 win7+VS2010 来实现,但是试了很多次都失败了。这是我多次配置环境时遇到的问题,各种博客文章总是不太完全,或者说没有说明一些遇到的问题的解决方案,这可能跟具体的操作系统和环境有关。本文就说说我安装的情况。

1. 准备工作

( 1 ) OS : win7  旗舰版  64 位  + VS2010   ( 2013 也试过了)

( 2 ) mysql  源码( windows 版):mysql-5.6.19.zip  (下来框选择 source code )

( 3 ) perl tool : ActivePerl-5.16.3.1604-MSWin32-x64-298023.msi

( 4 ) Cmake : cmake-3.0.0-win32-x86 .exe

( 5 ) Bison : bison-2.4.1-setup.exe

安装需要注意的几点,一般安装在根目录下,如 C:/Cmake  C:/GnuWin32 C:/Perl64  ,当然也可以是其他目录, 一般路径不要出现中文字符,空的及特殊字符 (这个貌似很重要)。具体安装见下面博客: Windows+VS2012环境下编译调试MySQL源码


  除了 Bison 安装需要注意意外,其他几乎都是默认安装,这些细节最好遵守,以免后续出错。

Perl, Cmake, Bison 安装完事之后 , 将他们安装目录下的 bin 所在路径加入环境变量中( windows 环境变量添加 ),如C:/Cmake/bin. 好了至此基本 ok.

保险起见我们需要验证一下安装是否成功:

2. 开始安装

在任意你喜欢的盘里面创建一个用于安装的目录:如在 D 盘创建 mysql 然后将 mysql-5.6.19.zip 解压到该目录下,然后在 cmd 中切换到安装目录,此处即为 D:/mysql/mysql-5.6.19 ,记( {install}= D:/mysql/mysql-5.6.19 ) , 其下包含如下文件目录:

然后在{install}下执行以下命令:

>mkdir bld

>cd bld

>cmake ..

这样你可看到类似如下的输出:

有一些错误,目前也没有解决,但其实这并不影响我们生成 VS 下 MySQL.sln  工程文件。事实上只要看到下面这个就可以了,各种 not found也不要紧:

如果采用 Cmake 

图形界面,其实也差不多了。这里不再赘述。

下一步我们就可以在 VS2010 中 build solution 了(对应生成解决方案),但为了尽可能减少警告或错误,我们首先需要对下述文件进行修改:

修改的方法很简单,就是将这些文件以 UTF-8 (带 BOM 头的)格式保存。一般使用 Nodepad++ 工具等 。

最后一步就是找到 {install}/mysql-5.6.19/sql/ mysqld.cc中的 test_lc_time_sz() 函数,将其中的 DBUG_ASSERT(0) 改为 DBUG_ASSERT(1) 即可。

至此我们就完成了将源码转换成 VS 中工程文件的目的。之后我们就可以 build solution 了。如果没有错误说明就已经没有问题了,一些小的警告可能是因为 C++ 编译器比 C 编译器严格的缘故。下一步我们开始调试。

3. 调试

然后将 mysqld 工程的 Debug 的 : 属性 -> 调试 -> 命令参数,设为 --console ,如下:

然后启动实例,

这样就可以看到下面的命令行界面:

cmd 下进入到目录 {install}/client ,然后执行如下命令,就可以开始连接到刚刚开启的 mysql 服务了。 这说明 mysql 服务已经启动,下一步就是启动 mysql 客服端,这里我是采用命令行的启动方式。

 好了至此,我们基本完成了在 win7 下实现在 vs 下编译调试 mysql 数据库的目的,下面就可以开始研究源码了。

为了更好地为后来者指明方向,也为了今后便于自己查询,只做了这个简单的指南。也希望按照这篇文档安装的朋友遇到任何问题可以一起探讨,然后不断完善该文档,以便后来者能够因此而受用,同时营造一个负责人写稿的氛围。

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
減少在Docker中使用MySQL內存的使用減少在Docker中使用MySQL內存的使用Mar 04, 2025 pm 03:52 PM

本文探討了Docker中的優化MySQL內存使用量。 它討論了監視技術(Docker統計,性能架構,外部工具)和配置策略。 其中包括Docker內存限制,交換和cgroups

mysql無法打開共享庫怎麼解決mysql無法打開共享庫怎麼解決Mar 04, 2025 pm 04:01 PM

本文介紹了MySQL的“無法打開共享庫”錯誤。 該問題源於MySQL無法找到必要的共享庫(.SO/.DLL文件)。解決方案涉及通過系統軟件包M驗證庫安裝

如何使用Alter Table語句在MySQL中更改表?如何使用Alter Table語句在MySQL中更改表?Mar 19, 2025 pm 03:51 PM

本文討論了使用MySQL的Alter Table語句修改表,包括添加/刪除列,重命名表/列以及更改列數據類型。

在 Linux 中運行 MySQl(有/沒有帶有 phpmyadmin 的 podman 容器)在 Linux 中運行 MySQl(有/沒有帶有 phpmyadmin 的 podman 容器)Mar 04, 2025 pm 03:54 PM

本文比較使用/不使用PhpMyAdmin的Podman容器直接在Linux上安裝MySQL。 它詳細介紹了每種方法的安裝步驟,強調了Podman在孤立,可移植性和可重複性方面的優勢,還

什麼是 SQLite?全面概述什麼是 SQLite?全面概述Mar 04, 2025 pm 03:55 PM

本文提供了SQLite的全面概述,SQLite是一個獨立的,無服務器的關係數據庫。 它詳細介紹了SQLite的優勢(簡單,可移植性,易用性)和缺點(並發限制,可伸縮性挑戰)。 c

如何為MySQL連接配置SSL/TLS加密?如何為MySQL連接配置SSL/TLS加密?Mar 18, 2025 pm 12:01 PM

文章討論了為MySQL配置SSL/TLS加密,包括證書生成和驗證。主要問題是使用自簽名證書的安全含義。[角色計數:159]

在MacOS上運行多個MySQL版本:逐步指南在MacOS上運行多個MySQL版本:逐步指南Mar 04, 2025 pm 03:49 PM

本指南展示了使用自製在MacOS上安裝和管理多個MySQL版本。 它強調使用自製裝置隔離安裝,以防止衝突。 本文詳細詳細介紹了安裝,起始/停止服務和最佳PRA

哪些流行的MySQL GUI工具(例如MySQL Workbench,PhpMyAdmin)是什麼?哪些流行的MySQL GUI工具(例如MySQL Workbench,PhpMyAdmin)是什麼?Mar 21, 2025 pm 06:28 PM

文章討論了流行的MySQL GUI工具,例如MySQL Workbench和PhpMyAdmin,比較了它們對初學者和高級用戶的功能和適合性。[159個字符]

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
2 週前By尊渡假赌尊渡假赌尊渡假赌
倉庫:如何復興隊友
1 個月前By尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
4 週前By尊渡假赌尊渡假赌尊渡假赌

熱工具

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

將Eclipse與SAP NetWeaver應用伺服器整合。

EditPlus 中文破解版

EditPlus 中文破解版

體積小,語法高亮,不支援程式碼提示功能

Dreamweaver Mac版

Dreamweaver Mac版

視覺化網頁開發工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

VSCode Windows 64位元 下載

VSCode Windows 64位元 下載

微軟推出的免費、功能強大的一款IDE編輯器