`
langzi_xl
  • 浏览: 23060 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

windows下编译调试mysql

阅读更多

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

0
0
分享到:
评论
2 楼 shukongchengje 2011-08-29  
我QQ:234149861
1 楼 shukongchengje 2011-08-29  
楼主能否加我,指定下。强烈渴望读源码,但一直配置不成功!

相关推荐

    windows下qt编译mysql驱动用到的include和lib

    在Windows环境下,使用Qt开发应用程序并连接MySQL数据库时,需要对Qt进行编译以包含MySQL驱动。这个过程涉及到几个关键步骤和技术知识点,包括Qt的源码编译、MySQL的开发库配置以及Qt Creator或Visual Studio的项目...

    如何轻轻松松编译MySQL内核

    但在最新的MySQL版本中,开发团队已经优化了编译流程,使得在Windows和Linux环境下可以使用统一的代码进行编译。这里我们将以MySQL 5.1.7为例,详细讲解在Windows环境下编译MySQL内核的方法。 首先,你需要确保满足...

    VS2010下编译的mysql++的lib库

    这个压缩包“VS2010下编译的mysql++的lib库”提供了在Visual Studio 2010(VS2010)环境中编译好的MySQL++库,方便开发者在该IDE下进行C++项目开发。 在VS2010中使用这个库,首先你需要了解以下关键知识点: 1. **...

    Qt5编译mysql

    在本文中,我们将深入探讨如何在Qt5.1.1环境下编译并使用MySQL数据库驱动。首先,让我们了解Qt和MySQL的基本概念。 Qt是一个跨平台的C++应用程序开发框架,由The Qt Company维护,广泛应用于桌面、移动和嵌入式设备...

    QT5.15.2 MSVC2019_64 静态编译 带MYSQL和OPENSSL

    2. **Microsoft Visual Studio 2019**:MSVC2019是Windows平台上常见的C++编译器,支持C++11到C++20的现代标准,提供了一流的调试和性能优化工具,适合开发大型和复杂的Qt项目。 3. **Qt与MySQL的集成**:Qt的...

    mysql源码编译工具

    MySQL源码编译工具是开发和调试MySQL数据库服务器的核心组件之一。在源码级别的操作,开发者可以深入理解MySQL的工作原理,进行自定义配置,优化性能,或者修复特定问题。本篇将详细介绍如何准备和使用这些工具来...

    Mysql驱动,Windos+MingW32编译版

    总的来说,这个“Mysql驱动,Windos+MingW32编译版”是专门为在Windows上使用MingW32和Qt开发环境的开发者准备的,它提供了调试支持,便于开发和调试过程。正确地集成和使用这个驱动将极大地提升应用程序对MySQL...

    编译好的qt4.7.3 mysql驱动

    综上所述,"编译好的qt4.7.3 mysql驱动"为Windows平台上的Qt开发者提供了与MySQL数据库交互的能力。通过理解Qt的数据库模块、驱动文件的作用以及如何在代码中使用这些驱动,开发者可以轻松地实现Qt应用与MySQL数据库...

    qt5.7.0源码编译的mysql(32位)驱动,需要学习和研究的朋友可以直接下载使用

    "libmysql.dll"是一个动态链接库文件,它是MySQL客户端库的一部分,用于在Windows平台上连接到MySQL服务器。这个库文件包含了执行SQL查询、管理数据库会话、处理结果集等所有必要的函数。在Qt应用中,当你使用QMYSQL...

    Windows平台C连接MySQL数据库

    本文将深入探讨如何在Windows环境下搭建C语言连接MySQL数据库的开发环境,并进行测试。 首先,我们需要安装必要的软件组件。这包括MySQL服务器、MySQL的C API库(通常包含在MySQL Connector/C中)以及一个C编译器,...

    qt编译mysql驱动

    在本文中,我们将深入探讨如何在Windows环境下使用Qt编译MySQL驱动,以便在Qt应用程序中与MySQL数据库进行交互。这个过程对于任何希望在Qt环境中利用MySQL数据库功能的开发者都至关重要。 首先,确保你已经安装了...

    windows下解压安装mysql5.6.40所需dll打包

    `vcredist_x64.exe` 包含了多线程、调试和非调试版本的运行时库,覆盖了不同编译配置的需求。在安装MySQL 5.6.40时,如果系统中没有这些运行时组件,通过运行这个安装程序,可以自动安装缺失的依赖,从而避免因缺少...

    qtcreator 5.9.1 mysql 编译的驱动

    在本例中,编译的目标是`build-sqldrivers-Desktop_Qt_5_9_1_MinGW_32bit-Debug`,这表明使用的是MinGW编译器和32位架构,且编译模式为调试模式。 5. **部署驱动**:编译完成后,会生成对应的驱动文件,通常是`.dll...

    MySQL-5.7.12-win32.zip,编译QT连接MySQL库需要的MySQL文件

    此压缩包"mysql-5.7.12-win32.zip"包含了在Windows环境下用于编译QT应用程序并连接到MySQL数据库所需的所有库文件。QT是一个强大的C++图形用户界面跨平台开发框架,它支持多种数据库系统,包括MySQL。 1. **MySQL ...

    Windows平台下Mysql+C编程入门.

    根据提供的文件信息,本文主要介绍的是在Windows平台下结合MySQL数据库进行C语言编程的入门知识。标题中提及的“Windows平台下MySQL+C编程入门”暗示了内容将涉及如何在Windows操作系统环境下,通过C语言与MySQL...

    MySQL客户端静态编译包,不依赖MySQL库,安装快捷。支持Mac、Windows和

    MySQL客户端静态编译包是一种预编译的软件发行版,它包含所有运行程序所需的文件,而不依赖于特定的MySQL服务器库。这种特性使得用户无需担心系统中MySQL库版本是否兼容,或者是否能够与现有的MySQL服务共存,从而...

    Windows下使用Cygwin编译MySQL客户端

    MinTTY 是一个小巧但却很实用的 Cygwin 终端机,但有个严重的问题就是无法调用交互性的 Windows 原生程序,比如说 mysql.exe,当你在 MinTTY 中输入如下的命令: 代码如下: $ mysql -uroot -p 本来 mysql.exe 会...

    qt6.0以上版本缺少mysql驱动所需的dll驱动文件

    一般来说,对于Windows系统,可以将`qsqlmysql.dll`复制到你的Qt安装目录下的`bin`文件夹,或者你的应用程序可执行文件所在的目录。如果是在开发阶段,确保`qsqlmysqld.dll`和对应的`.pdb`文件也在相同路径下,以...

    mysql-connector-odbc-5.1.6-win32.rar_MYSQL_mySQL ODBC_mysql ODBC

    在本压缩包"mysql-connector-odbc-5.1.6-win32.rar"中,我们找到了MySQL Connector/ODBC 5.1.6的Windows 32位版本的安装程序,适用于那些运行在32位Windows操作系统上的应用。 MySQL Connector/ODBC是MySQL公司开发...

    ARM-QT链接MYSQL驱动

    5. **编译与调试**:在ARM设备上编译并运行你的Qt应用程序。如果一切配置正确,你应该能够成功连接到MySQL数据库。如果遇到错误,检查日志输出,找出问题所在,可能的原因包括驱动未正确放置、依赖库缺失或配置不...

Global site tag (gtag.js) - Google Analytics