- 浏览: 208987 次
- 性别:
- 来自: 杭州
文章分类
最新评论
-
Prepared:
Hadoop的几个明显缺点 -
CSunDNan:
...
openjdk jvm 方法字节码执行过程 -
幻影之蚀:
...
mysql 源码分析2 源码调试环境建立 -
shukongchengje:
紧急呼唤楼主,mysql代码从哪里弄?官网wiki上看的一头雾 ...
mysql源码分析 整体架构 -
yeshaoting:
好文章.不介意的话转载了.
jvm 字节码中文含义
mysql 在 VS2005上面单步调试 收藏
http://www.xianfen.net/Article137.aspx
http://database.ctocio.com.cn/tips/114/8305614.shtml
http://forge.mysql.com/wiki/Building_MySQL_on_Windows
环境准备:
1. 获取MySQL最新源码:当前版本为5.1.45:http://dev.mysql.com/downloads/mysql/ (Windows (x86, 32-bit), ZIP Archive),解压到工作目录,如D:\mysql-5.1.45
2. 安装VS2005,任何版本都可。如果是Express版本,需要再安装Windows SDK, Server 2003 R2 Platform SDK下载地址为:http://www.microsoft.com/downloads/details.aspx?FamilyId=F26B1AA4-741A-433A-9BE5-FA919850BDBF&displaylang=en
3. 安装CMake(Windows版本),下载地址:http://www.cmake.org/cmake/resources/software.html, 旧版本可能不支持生成VS2005解决方案,推荐用最新版本。
注意:安装路径最好为英文,并且不要有空格。安装后将bin路径添加到系统环境变量。
4. 安装GNUWin32 Bison,下载地址为:http://gnuwin32.sourceforge.net/packages/bison.htm, 同样安装路径最好为英文,并且不要有空格。安装后将bin路径添加到系统环境变量。
5. 安装CygWin,下载地址为:http://www.cygwin.com/setup.exe, 选择模块时要选上Perl and Python模块。
注意:如果只编译,不做test,可不安装CygWin.
二. 编译源代码:
1. 源码目录中sql/sql_locale.cc文件包含各地本地化语言,默认用的UTF-8 without BOM编码,编译器不能正确识别,用含有编码转换功能的文本编辑器将其另存为为UTF-8编码格式。
2. 控制台进入MySQL根目录,运行Win\configure.js脚本,脚本的参数为:
WITH_INNOBASE_STORAGE_ENGINE Enable particular storage engines
WITH_PARTITION_STORAGE_ENGINE
WITH_ARCHIVE_STORAGE_ENGINE
WITH_BLACKHOLE_STORAGE_ENGINE
WITH_EXAMPLE_STORAGE_ENGINE
WITH_FEDERATED_STORAGE_ENGINE
__NT__ Enable named pipe support
MYSQL_SERVER_SUFFIX=<suffix> Server suffix, default none
COMPILATION_COMMENT=<comment> Server comment, default "Source distribution"
MYSQL_TCP_PORT=<port> Server port, default 3306
CYBOZU Default character set is UTF8
EMBED_MANIFESTS Embed custom manifests into final exes, otherwise VS
default will be used. (Note - This option should only be
used by MySQL AB.)
WITH_EMBEDDED_SERVER Configure solution to produce libmysqld.dll
and the static mysqlserver.lib
因此,该命令行可以是如下所示。
Cscript win\configure.js WITH_INNOBASE_STORAGE_ENGINE WITH_PARTITION_STORAGE_ENGINE MYSQL_SERVER_SUFFIX=-pro
运行结果应该与如下结果类似:
Microsoft (R) Windows Script Host Version X.X
Copyright (C) Microsoft Corporation XXXX-XXXX. All rights reserved.
done!
3. 创建VS解决方案,在MySQL源文件Win目录下有一些批处理:
build-vs71.bat VS2003
build-vs8.bat VS2005
build-vs8_x64.bat VS2005,编译出64bit MySQL
build-vs9.bat VS2008
build-vs9_x64.bat VS2008,编译出64bit MySQL
这些批处理内调用的是CMake,可以在命令行敲入CMake,查看CMake支持的VS版本。
这里我们用VS2005,目标运行平台为32bit,所以运行Win\build-vs8.bat。
运行后,在MySQL根目录生成了MySql.sln,用VS2005打开,可以看到有56个项目。
将sql 中的 mysqld.cc 中的函数 test_lc_time_sz()中的
(*loc)->max_month_name_length = max_month_len;
(*loc)->max_day_name_length = max_day_len;
/*
if ((*loc)->max_month_name_length != max_month_len ||
(*loc)->max_day_name_length != max_day_len)
{
DBUG_PRINT("Wrong max day name(or month name) length for locale:",
("%s", (*loc)->name));
DBUG_ASSERT(0);
}
*/
编码总计算错误,先这么改,找到问题再说
在mysqld的属性页设置命令参数为:
--no-defaults --basedir=D:/mysql-5.1.45/sql --datadir=D:/mysql-5.1.45/win/data --character-sets-dir=D:/mysql-5.1.45/sql/share/charsets --log-bin-trust-function-creators --character-set-server=latin1 --language=D:/mysql-5.1.45/sql/share/english --console --loose-innodb_data_file_path=ibdata1:10M:autoextend --local-infile --loose-skip-innodb --key_buffer_size=1M --sort_buffer=256K --max_heap_table_size=1M --ssl-ca=D:/mysql-5.1.45/mysql-test/std_data/cacert.pem --ssl-cert=D:/mysql-5.1.45/mysql-test/std_data/server-cert.pem --ssl-key=D:/mysql-5.1.45/mysql-test/std_data/server-key.pem --gdb --skip-log-bin --core-file --open-files-limit=1024
设置断点,比如查询的总入口是sql\sql_select.cc 中的 handle_select 函数。
编译mysql项目,将会在mysql-5.1.45-beta\client_debug目录下生成mysql.exe。使用“启动新实例”或者“进入单步执行新实例”进行调试。
在新窗口中输入SQL语句,就可以执行了,mysqld就是后台服务器进程是sql\mysqld.cc中的main函数,sql是输入前端,是mysql\mysql.cc中的main函数
测试语句:SELECT VERSION(), CURRENT_DATE;
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/spche/archive/2010/03/25/5416073.aspx
http://www.xianfen.net/Article137.aspx
http://database.ctocio.com.cn/tips/114/8305614.shtml
http://forge.mysql.com/wiki/Building_MySQL_on_Windows
环境准备:
1. 获取MySQL最新源码:当前版本为5.1.45:http://dev.mysql.com/downloads/mysql/ (Windows (x86, 32-bit), ZIP Archive),解压到工作目录,如D:\mysql-5.1.45
2. 安装VS2005,任何版本都可。如果是Express版本,需要再安装Windows SDK, Server 2003 R2 Platform SDK下载地址为:http://www.microsoft.com/downloads/details.aspx?FamilyId=F26B1AA4-741A-433A-9BE5-FA919850BDBF&displaylang=en
3. 安装CMake(Windows版本),下载地址:http://www.cmake.org/cmake/resources/software.html, 旧版本可能不支持生成VS2005解决方案,推荐用最新版本。
注意:安装路径最好为英文,并且不要有空格。安装后将bin路径添加到系统环境变量。
4. 安装GNUWin32 Bison,下载地址为:http://gnuwin32.sourceforge.net/packages/bison.htm, 同样安装路径最好为英文,并且不要有空格。安装后将bin路径添加到系统环境变量。
5. 安装CygWin,下载地址为:http://www.cygwin.com/setup.exe, 选择模块时要选上Perl and Python模块。
注意:如果只编译,不做test,可不安装CygWin.
二. 编译源代码:
1. 源码目录中sql/sql_locale.cc文件包含各地本地化语言,默认用的UTF-8 without BOM编码,编译器不能正确识别,用含有编码转换功能的文本编辑器将其另存为为UTF-8编码格式。
2. 控制台进入MySQL根目录,运行Win\configure.js脚本,脚本的参数为:
WITH_INNOBASE_STORAGE_ENGINE Enable particular storage engines
WITH_PARTITION_STORAGE_ENGINE
WITH_ARCHIVE_STORAGE_ENGINE
WITH_BLACKHOLE_STORAGE_ENGINE
WITH_EXAMPLE_STORAGE_ENGINE
WITH_FEDERATED_STORAGE_ENGINE
__NT__ Enable named pipe support
MYSQL_SERVER_SUFFIX=<suffix> Server suffix, default none
COMPILATION_COMMENT=<comment> Server comment, default "Source distribution"
MYSQL_TCP_PORT=<port> Server port, default 3306
CYBOZU Default character set is UTF8
EMBED_MANIFESTS Embed custom manifests into final exes, otherwise VS
default will be used. (Note - This option should only be
used by MySQL AB.)
WITH_EMBEDDED_SERVER Configure solution to produce libmysqld.dll
and the static mysqlserver.lib
因此,该命令行可以是如下所示。
Cscript win\configure.js WITH_INNOBASE_STORAGE_ENGINE WITH_PARTITION_STORAGE_ENGINE MYSQL_SERVER_SUFFIX=-pro
运行结果应该与如下结果类似:
Microsoft (R) Windows Script Host Version X.X
Copyright (C) Microsoft Corporation XXXX-XXXX. All rights reserved.
done!
3. 创建VS解决方案,在MySQL源文件Win目录下有一些批处理:
build-vs71.bat VS2003
build-vs8.bat VS2005
build-vs8_x64.bat VS2005,编译出64bit MySQL
build-vs9.bat VS2008
build-vs9_x64.bat VS2008,编译出64bit MySQL
这些批处理内调用的是CMake,可以在命令行敲入CMake,查看CMake支持的VS版本。
这里我们用VS2005,目标运行平台为32bit,所以运行Win\build-vs8.bat。
运行后,在MySQL根目录生成了MySql.sln,用VS2005打开,可以看到有56个项目。
将sql 中的 mysqld.cc 中的函数 test_lc_time_sz()中的
(*loc)->max_month_name_length = max_month_len;
(*loc)->max_day_name_length = max_day_len;
/*
if ((*loc)->max_month_name_length != max_month_len ||
(*loc)->max_day_name_length != max_day_len)
{
DBUG_PRINT("Wrong max day name(or month name) length for locale:",
("%s", (*loc)->name));
DBUG_ASSERT(0);
}
*/
编码总计算错误,先这么改,找到问题再说
在mysqld的属性页设置命令参数为:
--no-defaults --basedir=D:/mysql-5.1.45/sql --datadir=D:/mysql-5.1.45/win/data --character-sets-dir=D:/mysql-5.1.45/sql/share/charsets --log-bin-trust-function-creators --character-set-server=latin1 --language=D:/mysql-5.1.45/sql/share/english --console --loose-innodb_data_file_path=ibdata1:10M:autoextend --local-infile --loose-skip-innodb --key_buffer_size=1M --sort_buffer=256K --max_heap_table_size=1M --ssl-ca=D:/mysql-5.1.45/mysql-test/std_data/cacert.pem --ssl-cert=D:/mysql-5.1.45/mysql-test/std_data/server-cert.pem --ssl-key=D:/mysql-5.1.45/mysql-test/std_data/server-key.pem --gdb --skip-log-bin --core-file --open-files-limit=1024
设置断点,比如查询的总入口是sql\sql_select.cc 中的 handle_select 函数。
编译mysql项目,将会在mysql-5.1.45-beta\client_debug目录下生成mysql.exe。使用“启动新实例”或者“进入单步执行新实例”进行调试。
在新窗口中输入SQL语句,就可以执行了,mysqld就是后台服务器进程是sql\mysqld.cc中的main函数,sql是输入前端,是mysql\mysql.cc中的main函数
测试语句:SELECT VERSION(), CURRENT_DATE;
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/spche/archive/2010/03/25/5416073.aspx
发表评论
-
mysql 核心内幕
2010-03-30 17:34 1361目录 第1章 MySQL的前世今生 1.1 MySQ ... -
并发控制原理
2010-03-30 17:31 991事务之间的相互影响可能导致数据库状态的不一致,即使各个事务能保 ... -
聚集索引与非聚集索引的基本概念
2010-03-30 17:14 1305聚集索引,是一种指明 ... -
bitmap索引的深入研究
2010-03-30 17:03 1382位图(bitmap)索引是另外一种索引类型,它的组织形式与B树 ... -
Mysql源代码分析系列
2010-03-30 16:51 5871Mysql源代码分析系列(2): 源代码结构 Mysql ... -
并发控制原理
2010-03-30 16:46 936事务之间的相互影响可能导致数据库状态的不一致,即使各个事务能保 ... -
数据库性能调优技术
2010-03-30 16:45 747一、概述 随着数据库在各个领域的使用不断增长,越来越多 ... -
日志系统原理
2010-03-30 16:40 1000一:事务系统 1.事务的工作模型 事务必须满足原子性,所 ... -
mysql内核分析--innodb哈希表的内部实现(上)
2010-03-30 16:36 13161.哈希表的概述 hash表的实现是innodb的基 ... -
Mysql查询优化器浅析
2010-03-30 16:33 9881 定义 Mysql查询优化器的工作是为查询语句选择 ... -
InnoDB页结构浅析
2010-03-30 16:32 1178InnoDB将所有的记录存放在数据库页中(也可以称为数据块)。 ... -
InnoDB记录结构浅析
2010-03-30 16:31 734InnoDB记录由三个部分组成,见表1: 表1:InnoDB的 ... -
mysql5.1在windows下的编译方法
2010-03-30 16:28 1292编译步骤 1、从mysql.com ... -
mysql 源码分析2 源码调试环境建立
2010-03-05 12:57 13731.下载源码 2.建立工程 3.调试 待续。。。 -
memcached 架构分析
2009-12-13 21:08 1109memcached 架构分析 -
无法抗衡关系型数据库 NoSQL革命仍要等待
2009-08-04 02:40 1136NoSQL架构可以省去将Web或者Java 应用和数据转换成S ... -
no sql
2009-08-04 02:31 923什么是NoSQL 1.不要叫它们数据库。 2.它们可以处理超大 ... -
B树
2009-07-28 16:35 1063B树 即二叉搜索树: 1.所有 ... -
索引基础
2009-07-28 14:43 9101.索引是什么? 索引是一个单独的、物理的数据库结构, ... -
mysql源码分析 整体架构
2009-07-28 03:13 8623大致分析完了mysql整体架构 明确了mysql架构,其实也就 ...
相关推荐
通过以上步骤,你可以在 VS2005 中创建一个简单的 MySQL 应用程序,实现数据的增删查改操作。这个实例可能只是一个基础的演示,实际项目中还需要考虑更多因素,如性能优化、事务处理、安全性等。在实践中不断学习和...
在调试过程中,要确保仔细检查程序逻辑,特别是可能出现错误的区域。同时,要善于利用日志和异常处理来辅助调试。 总之,使用Toad调试存储过程和触发器是一个高效的过程,它提供了直观的用户界面和强大的调试功能。...
mysql开发工具,支持单步调试
MySQL调试工具是数据库管理员和开发人员的得力助手,它使得在MySQL环境中定位和解决代码问题变得更加简单和高效。在数据库应用开发过程中,错误和异常是难以避免的,而一个有效的调试工具能够帮助我们理解查询执行的...
标题“vs2005链接MySQL”涉及到的是在Visual Studio 2005(简称VS2005)环境下,使用C#编程语言构建一个基于B/S(Browser/Server,浏览器/服务器)架构的应用程序,并集成MySQL数据库进行数据操作。这个简单例子很...
MySQL 2005中文版是一款广泛应用于数据库管理领域的开源关系型数据库系统,以其高效、稳定和易用性而受到全球用户的青睐。该版本可能是MySQL的一个早期版本,针对中文用户进行了本地化处理,使得界面和文档都以中文...
此版本的 MySQL Connector/C 已经被优化,可以无缝集成到 VS2005 中,使得开发者在创建基于 MySQL 的应用时能够方便地管理和调试代码。 6. **压缩包内容**:"mysql-connector-c-noinstall-6.0.2-win32-vs2005" 这个...
这个压缩包“mysql-connector-c++-noinstall-1.0.5-win32-vs2005.zip”包含了适用于Windows 32位系统且与Visual Studio 2005兼容的版本。 MySQL Connector/C++的主要功能是为C++开发者提供了一种方便、高效的方式来...
本篇文章将详细探讨如何在Visual Studio 2005(VS2005)中连接到MySQL数据库,实现数据的存取与操作。 首先,为了在VS2005中连接MySQL,我们需要安装必要的组件。由于VS2005自身并不内置对MySQL的支持,因此我们...
在本主题中,我们将深入探讨“MySQL存储过程调试工具”,并了解如何利用这些工具来优化和调试存储过程。 首先,我们关注的核心工具是"Debugger for MySQL"。这是一款专为MySQL设计的存储过程调试工具,它提供了断点...
在这个场景下,我们讨论的是如何在VS2005中使用MYSQL++库来连接和操作MySQL数据库。 首先,"MYSQL++"是C++的一个开源库,专门设计用于与MySQL数据库管理系统进行交互。它提供了一套方便的C++类和函数,使得开发人员...
在Linux环境下使用Eclipse进行MySQL的断点调试是一项高级的开发技能,尤其对于那些深入研究数据库应用逻辑或需要进行性能优化的开发者而言尤为重要。本文将详细介绍如何在Linux下利用Eclipse对MySQL进行断点调试的...
5. **调试支持**:对于存储过程和函数,插件提供了调试功能,可以在Visual Studio中设置断点,检查变量值,进行单步调试。 6. **项目集成**:在Visual Studio的解决方案资源管理器中,可以直接添加和管理MySQL...
在开发Windows应用程序时,Visual Studio 2010(VS2010)是一个常用的集成开发环境,而MySQL则是一种广泛使用的开源关系型数据库管理系统。本文将深入探讨如何在VS2010的Windows窗体应用程序中实现对MySQL数据库的增...
MySQL for Visual Studio 1.2.9 是一个专为Visual Studio设计的插件,它为开发者提供了一套集成的工具,使得在Visual Studio环境中开发、管理和部署MySQL数据库变得更加便捷高效。这个插件允许开发者直接在Visual ...
VS2012连接Mysql数据库驱动。解决低版本的添加数据源后在VS2012里找不到。
5. **调试支持**:在Visual Studio中可以直接调试存储过程和函数。 **MySQL Connector/Net 6.9.9** MySQL Connector/Net 是MySQL数据库的.NET数据提供程序,用于.NET Framework或.NET Core应用程序。6.9.9版本提供...
开发人员在使用MySQL ODBC驱动时,可以利用ODBC的特性进行调试,如设置SQL日志,查看查询执行时间等,帮助优化数据库操作。 8. **应用场景**: MySQL ODBC驱动广泛应用于各种场景,如报表工具(如Crystal Reports...
Java连接MySQL 5.0是Java开发者经常遇到的任务,它涉及到Java数据库连接(JDBC)技术。本资源包提供了一个调试成功的...通过实际运行和调试这些代码,你可以更好地理解JDBC的工作原理,并学会在自己的项目中使用它们。