mysql在类linux环境下的编译、调试相信大家都应该有所了解,和其他的GNU工具没有两样:configure、make、gdb。。。 当然具体的参数选项可能会很多,可以参考官方文档。
本文试就windows开发环境下的mysql编译调试做些表述:
用到的工具: vs2005 bison cmake
1. 在WIN下配置好bison cmake的环境变量,注意安装这两个工具的路径尽量不要带有空格
2. 参照$mysql_src\win\README,执行vs2005所对应的build-vs8.bat, 生成相应的solution文件等等如图所示:

3. 在vs中可以打开生成的solution文件:
4. source目录中比较重要的几个目录:
BUILD 各个平台的编译脚本,可以关注 compile-pentium-debug
client 平时我们经常会用到的mysql客户端工具,比如mysql mysqldump
mysys 系统编程接口的封闭,cross-platform:)
storage 这个是核心,存储引擎嘛。重点可以看innodb myisam和example,特别是example,专门是为程序员demo的
sql 这个最重要了,mysqld所在哈
5. 需要手工修改一下sql_locale.cc的编码,另存为UTF-8,这样子编译mysqld的时候才可以过,详情可参考mysql bug36281
6. 现在编译mysqld可以成功了,试着运行下,还有问题:
于是到mysqld.cc的4267行看了下是个DBUG_ASSERT语句,懒的细看,直接注掉,重build,没问题鸟终于。。。
7. 剩下的就是按照出错提示,创建目录sql\data
8. 查看mysql-5.1.45\sql\data\t-wuyun.err错误LOG: Fatal error: Can’t open
and lock privilege tables: Table ‘mysql.host’ doesn’t exist。
拷贝mysql-5.1.45\win\data\mysql到mysql-5.1.45\sql\data\mysql,再次运行mysql-
5.1.45\sql\debug\mysqld.exe,终于彻底静悄悄了~~~
9. 终于可以单步debug了:
mysql-5.1.45\sql\debug\mysqld.exe –debug –standalone 先启动好mysql server
在VS中attach到该进程,如图所示
下个断点,再启个mysql客户端请求一下:
mysql-5.1.45\client\debug\mysql.exe -uroot -p
mysql>show authors;
我们最喜爱的画面终于出现鸟:
10. 收尾工作: mysql-5.1.45\client\debug\mysqladmin.exe -uroot -p shutdown
11. 现在想干什么想了解什么,就可以为所欲为了~~~比如了解select/insert/update/delete的数据库内部详细实现流程,甚至是mysql的执行计划选择,innodb的细节等等。
最后唠叨一句: 能用GDB调试学习就用GDB吧,在WINDOWS下配置真的不容易,关键是GDB的速度真不是盖的 : )
参考资料:
http://dev.mysql.com/doc/mysql-sourcebuild-excerpt/5.0/en/windows-source-build-cmake.html
http://bugs.mysql.com/bug.php?id=36281
http://forge.mysql.com/wiki/Building_MySQL_on_Windows
http://forge.mysql.com/wiki/CMake
http://blog.chinaunix.net/u2/72491/showart_1831952.html
分享到:
相关推荐
在Windows环境下,使用Qt开发应用程序并连接MySQL数据库时,需要对Qt进行编译以包含MySQL驱动。这个过程涉及到几个关键步骤和技术知识点,包括Qt的源码编译、MySQL的开发库配置以及Qt Creator或Visual Studio的项目...
但在最新的MySQL版本中,开发团队已经优化了编译流程,使得在Windows和Linux环境下可以使用统一的代码进行编译。这里我们将以MySQL 5.1.7为例,详细讲解在Windows环境下编译MySQL内核的方法。 首先,你需要确保满足...
这个压缩包“VS2010下编译的mysql++的lib库”提供了在Visual Studio 2010(VS2010)环境中编译好的MySQL++库,方便开发者在该IDE下进行C++项目开发。 在VS2010中使用这个库,首先你需要了解以下关键知识点: 1. **...
在本文中,我们将深入探讨如何在Qt5.1.1环境下编译并使用MySQL数据库驱动。首先,让我们了解Qt和MySQL的基本概念。 Qt是一个跨平台的C++应用程序开发框架,由The Qt Company维护,广泛应用于桌面、移动和嵌入式设备...
2. **Microsoft Visual Studio 2019**:MSVC2019是Windows平台上常见的C++编译器,支持C++11到C++20的现代标准,提供了一流的调试和性能优化工具,适合开发大型和复杂的Qt项目。 3. **Qt与MySQL的集成**:Qt的...
MySQL源码编译工具是开发和调试MySQL数据库服务器的核心组件之一。在源码级别的操作,开发者可以深入理解MySQL的工作原理,进行自定义配置,优化性能,或者修复特定问题。本篇将详细介绍如何准备和使用这些工具来...
总的来说,这个“Mysql驱动,Windos+MingW32编译版”是专门为在Windows上使用MingW32和Qt开发环境的开发者准备的,它提供了调试支持,便于开发和调试过程。正确地集成和使用这个驱动将极大地提升应用程序对MySQL...
综上所述,"编译好的qt4.7.3 mysql驱动"为Windows平台上的Qt开发者提供了与MySQL数据库交互的能力。通过理解Qt的数据库模块、驱动文件的作用以及如何在代码中使用这些驱动,开发者可以轻松地实现Qt应用与MySQL数据库...
"libmysql.dll"是一个动态链接库文件,它是MySQL客户端库的一部分,用于在Windows平台上连接到MySQL服务器。这个库文件包含了执行SQL查询、管理数据库会话、处理结果集等所有必要的函数。在Qt应用中,当你使用QMYSQL...
本文将深入探讨如何在Windows环境下搭建C语言连接MySQL数据库的开发环境,并进行测试。 首先,我们需要安装必要的软件组件。这包括MySQL服务器、MySQL的C API库(通常包含在MySQL Connector/C中)以及一个C编译器,...
在本文中,我们将深入探讨如何在Windows环境下使用Qt编译MySQL驱动,以便在Qt应用程序中与MySQL数据库进行交互。这个过程对于任何希望在Qt环境中利用MySQL数据库功能的开发者都至关重要。 首先,确保你已经安装了...
`vcredist_x64.exe` 包含了多线程、调试和非调试版本的运行时库,覆盖了不同编译配置的需求。在安装MySQL 5.6.40时,如果系统中没有这些运行时组件,通过运行这个安装程序,可以自动安装缺失的依赖,从而避免因缺少...
在本例中,编译的目标是`build-sqldrivers-Desktop_Qt_5_9_1_MinGW_32bit-Debug`,这表明使用的是MinGW编译器和32位架构,且编译模式为调试模式。 5. **部署驱动**:编译完成后,会生成对应的驱动文件,通常是`.dll...
此压缩包"mysql-5.7.12-win32.zip"包含了在Windows环境下用于编译QT应用程序并连接到MySQL数据库所需的所有库文件。QT是一个强大的C++图形用户界面跨平台开发框架,它支持多种数据库系统,包括MySQL。 1. **MySQL ...
根据提供的文件信息,本文主要介绍的是在Windows平台下结合MySQL数据库进行C语言编程的入门知识。标题中提及的“Windows平台下MySQL+C编程入门”暗示了内容将涉及如何在Windows操作系统环境下,通过C语言与MySQL...
MySQL客户端静态编译包是一种预编译的软件发行版,它包含所有运行程序所需的文件,而不依赖于特定的MySQL服务器库。这种特性使得用户无需担心系统中MySQL库版本是否兼容,或者是否能够与现有的MySQL服务共存,从而...
MinTTY 是一个小巧但却很实用的 Cygwin 终端机,但有个严重的问题就是无法调用交互性的 Windows 原生程序,比如说 mysql.exe,当你在 MinTTY 中输入如下的命令: 代码如下: $ mysql -uroot -p 本来 mysql.exe 会...
一般来说,对于Windows系统,可以将`qsqlmysql.dll`复制到你的Qt安装目录下的`bin`文件夹,或者你的应用程序可执行文件所在的目录。如果是在开发阶段,确保`qsqlmysqld.dll`和对应的`.pdb`文件也在相同路径下,以...
在本压缩包"mysql-connector-odbc-5.1.6-win32.rar"中,我们找到了MySQL Connector/ODBC 5.1.6的Windows 32位版本的安装程序,适用于那些运行在32位Windows操作系统上的应用。 MySQL Connector/ODBC是MySQL公司开发...
5. **编译与调试**:在ARM设备上编译并运行你的Qt应用程序。如果一切配置正确,你应该能够成功连接到MySQL数据库。如果遇到错误,检查日志输出,找出问题所在,可能的原因包括驱动未正确放置、依赖库缺失或配置不...