mysql内核 innodb存储引警(卷1)配书 用VS 2003 编绎 mysql-3.23.49 源代码
作者网址:http://www.innomysql.net/
1.旧版 mysql-3.23.49-win-src.zip 下载 (科学上网络下载配书源代码) 或者 作者网盘 http://pan.baidu.com/s/1bnqK2dx
http://live.dadanini.at/mysql/downloads_html/mysql-3.23.html
相关资料: 何登成 :http://vdisk.weibo.com/u/2216172320
2.打开工程 mysql.sln
error 1:
正在创建临时文件“e:\mysql-3.23.49BAK\strings\debug\BAT000001.bat”,其内容为
[
@echo off
ml /Cx /nologo /DDOS386 /DM_I386 /Zm /coff /c /Fo ".\debug"\"strxmov".obj "e:\mysql-3.23.49BAK\strings\strxmov.asm" if errorlevel goto VCReportError
goto VCEnd
:VCReportError
echo Project : error PRJ0019: 工具从"正在执行自定义生成步骤"
exit
:VCEnd
]
正在创建命令行“"e:\mysql-3.23.49BAK\strings\debug\BAT000001.bat"”
正在创建临时文件“e:\mysql-3.23.49BAK\strings\debug\BAT000002.bat”,其内容为
[
@echo off
ml /Cx /nologo /DDOS386 /DM_I386 /Zm /coff /c /Fo ".\debug"\"strings".obj "e:\mysql-3.23.49BAK\strings\strings.asm" if errorlevel goto VCReportError
goto VCEnd
:VCReportError
echo Project : error PRJ0019: 工具从"正在执行自定义生成步骤"
exit
:VCEnd
]
正在创建命令行“"e:\mysql-3.23.49BAK\strings\debug\BAT000002.bat"”
修改E:\mysql-3.23.49\strings 下的 strings.vcproj
<File
RelativePath="Strxmov.asm">
<FileConfiguration
Name="Release|Win32">
<Tool
Name="VCCustomBuildTool"
CommandLine="ml /Cx /nologo /DDOS386 /DM_I386 /Zm /coff /c /Fo .\debug\Strxmov.obj "$(InputPath)"
"
Outputs="$(OutDir)\$(InputName).obj"/>
</FileConfiguration>
<FileConfiguration
Name="Debug|Win32">
<Tool
Name="VCCustomBuildTool"
CommandLine="ml /Cx /nologo /DDOS386 /DM_I386 /Zm /coff /c /Fo .\debug\Strxmov.obj "$(InputPath)"
"
Outputs="$(OutDir)\$(InputName).obj"/>
</FileConfiguration>
</File>
<File
RelativePath="Strings.asm">
<FileConfiguration
Name="Release|Win32">
<Tool
Name="VCCustomBuildTool"
CommandLine="ml /Cx /nologo /DDOS386 /DM_I386 /Zm /coff /c /Fo .\debug\strings.obj "$(InputPath)"
"
Outputs="$(OutDir)\$(InputName).obj"/>
</FileConfiguration>
<FileConfiguration
Name="Debug|Win32">
<Tool
Name="VCCustomBuildTool"
CommandLine="ml /Cx /nologo /DDOS386 /DM_I386 /Zm /coff /c /Fo .\debug\strings.obj "$(InputPath)"
"
Outputs="$(OutDir)\$(InputName).obj"/>
</FileConfiguration>
</File>
error 2:
正在编译...
cxx_txn.cpp
../bdb\build_win32\db_config.h() : fatal error C1083: 无法打开包含文件:“iostream.h”: No such file or directory
cxx_table.cpp
../bdb\build_win32\db_config.h() : fatal error C1083: 无法打开包含文件:“iostream.h”: No such file or directory
cxx_mpool.cpp
../bdb\build_win32\db_config.h() : fatal error C1083: 无法打开包含文件:“iostream.h”: No such file or directory
cxx_log.cpp
../bdb\build_win32\db_config.h() : fatal error C1083: 无法打开包含文件:“iostream.h”: No such file or directory
cxx_lock.cpp
../bdb\build_win32\db_config.h() : fatal error C1083: 无法打开包含文件:“iostream.h”: No such file or directory
cxx_except.cpp
../bdb\build_win32\db_config.h() : fatal error C1083: 无法打开包含文件:“iostream.h”: No such file or directory
cxx_app.cpp
../bdb\build_win32\db_config.h() : fatal error C1083: 无法打开包含文件:“iostream.h”: No such file or directory
在 E:\mysql-3.23.49\bdb\build_win32\下找到db_config.h
修改db_config.h 第218行 修改为
#include <iostream>
using namespace std;
error 3
cxx_txn.cpp
../bdb\include\db_cxx.h(52) : fatal error C1083: 无法打开包含文件:“iostream.h”: No such file or directory
cxx_table.cpp
../bdb\include\db_cxx.h(52) : fatal error C1083: 无法打开包含文件:“iostream.h”: No such file or directory
cxx_mpool.cpp
../bdb\include\db_cxx.h(52) : fatal error C1083: 无法打开包含文件:“iostream.h”: No such file or directory
cxx_log.cpp
../bdb\include\db_cxx.h(52) : fatal error C1083: 无法打开包含文件:“iostream.h”: No such file or directory
cxx_lock.cpp
../bdb\include\db_cxx.h(52) : fatal error C1083: 无法打开包含文件:“iostream.h”: No such file or directory
cxx_except.cpp
../bdb\include\db_cxx.h(52) : fatal error C1083: 无法打开包含文件:“iostream.h”: No such file or directory
cxx_app.cpp
../bdb\include\db_cxx.h(52) : fatal error C1083: 无法打开包含文件:“iostream.h”: No such file or directory
在E:\mysql-3.23.49\bdb\include下找到 db_cxx.h, 定位到52行修改为
#include <iostream>
using namespace std;
error 4
LINK : fatal error LNK1181: 无法打开输入文件“mysqlclient.lib”
生成日志保存在“file://e:\mysql-3.23.49\client\mysqlcheck___Win32_Release\BuildLog.htm”中 mysqlcheck - 1 错误,0 警告
方法 .在选择 mysqlcheck 项目,右击选择 属性 -》常规-》附加库目录 加入 ..\lib_debug\目录
error 5 库冲突与函数引用
解决方法:

3.调试MYSQL
1.mysqld --debug --standalone --console(CMD 窗口不能关,否则就非正常退去了)
2.打开VS 2003 ,打开mysql.sln
3.在VS 2003中设定想要设定的断点
4.工具->调试->附加到进程->选择 mysqld (本地native)
5.mysql -u root 在这个窗口中 执行SQL命令,VS 2003会在源码中中断到相关细节,进而进行动态调试
6.mysqladmin shutdown -u root //调试完毕后关闭mysqld
mysql 跟踪文件:e:\mysqld.trace
c:\my.cnf
[mysqld] basedir=E:\mysql-3.23.
datadir=E:\mysql-3.23.\data
innodb_data_home_dir=E:\mysql-3.23.\data
innodb_data_file_path=ibdata1:30M
mysql内核 innodb存储引警(卷1)配书 用VS 2003 编绎 mysql-3.23.49 源代码的更多相关文章
- MySQL数据库InnoDB存储引擎多版本控制(MVCC)实现原理分析
文/何登成 导读: 来自网易研究院的MySQL内核技术研究人何登成,把MySQL数据库InnoDB存储引擎的多版本控制(简称:MVCC)实现原理,做了深入的研究与详细的文字图表分析,方便大家理解I ...
- MySQL数据库InnoDB存储引擎中的锁机制
MySQL数据库InnoDB存储引擎中的锁机制 http://www.uml.org.cn/sjjm/201205302.asp 00 – 基本概念 当并发事务同时访问一个资源的时候,有可能 ...
- MySql中innodb存储引擎事务日志详解
分析下MySql中innodb存储引擎是如何通过日志来实现事务的? Mysql会最大程度的使用缓存机制来提高数据库的访问效率,但是万一数据库发生断电,因为缓存的数据没有写入磁盘,导致缓存在内存中的数据 ...
- MySQL数据库InnoDB存储引擎
MySQL数据库InnoDB存储引擎Log漫游 http://blog.163.com/zihuan_xuan/blog/static/1287942432012366293667/
- mysql中InnoDB存储引擎的行锁和表锁
Mysql的InnoDB存储引擎支持事务,默认是行锁.因为这个特性,所以数据库支持高并发,但是如果InnoDB更新数据的时候不是行锁,而是表锁的话,那么其并发性会大打折扣,而且也可能导致你的程序出错. ...
- 一文带你读懂 Mysql 和 InnoDB存储引擎
作为一名开发人员,在日常的工作中会难以避免地接触到数据库,无论是基于文件的 sqlite 还是工程上使用非常广泛的 MySQL.PostgreSQL,但是一直以来也没有对数据库有一个非常清晰并且成体系 ...
- mysql之innodb存储引擎
mysql之innodb存储引擎 innodb和myisam区别 1>.InnoDB支持事物,而MyISAM不支持事物 2>.InnoDB支持行级锁,而MyISAM支持表级锁 3>. ...
- 在MySQL的InnoDB存储引擎中count(*)函数的优化
写这篇文章之前已经看过了很多数据库方面的优化内容,大部分都是加索引.使用事务.要什么select什么等等.然而,只是停留在阅读的层面上,很少有实践,因为没有遇到真实的项目,一切都是纸上谈兵.实践是检验 ...
- MySQL:InnoDB存储引擎的B+树索引算法
很早之前,就从学校的图书馆借了MySQL技术内幕,InnoDB存储引擎这本书,但一直草草阅读,做的笔记也有些凌乱,趁着现在大四了,课程稍微少了一点,整理一下笔记,按照专题写一些,加深一下印象,不枉读了 ...
随机推荐
- day10作业
1.Java中,用{}括起来的代码称为代码块. 代码块分为局部代码块,构造代码块,静态代码块,同步代码块 局部代码块:在方法中出现,限定生命周期,及早释放,提高内存利用率 构造代码块:在类中方法外出现 ...
- gcc/g++ 命令
gcc & g++现在是gnu中最主要和最流行的c & c++编译器 .g++是c++的命令,以.cpp为主,对于c语言后缀名一般为.c.这时候命令换做gcc即可.其实是无关紧要的.其 ...
- 20165203《Java程序设计》第五周学习总结
教材学习内容总结 第七章 内部类 注意内部类和外嵌类的关系: 外嵌类的成员变量和方法在内部类有效 内部类的类体不可以声明static变量和方法.外嵌类的类体可以用内部类声明对象. 内部类仅供它的外嵌类 ...
- 20165203《Java程序设计》第二周Java学习总结
教材学习内容总结 第二章 (一)标识符 注意: 标识符由字母.下画线.美元符号和数字组成,长度不受限制. 标识符第一个字符不能是数学字符. 标识符不能是关键字. 标识符不能是true.false和nu ...
- java.lang.NoClassDefFoundError: javax/persistence/EntityListeners
在使用 Hibernate 进行数据库操作的时候,在启动 Tomcat 服务器后,Console 控制台可能会打印出这样的异常:java.lang.NoClassDefFoundError: java ...
- kvm图形化管理工具
1丶windows环境下载安装以及运行xming软件 https://xming.en.softonic.com/ 链接:https://pan.baidu.com/s/1wMb2pK4WfCilS8 ...
- 41-2:和为S的连续正数序列
import java.util.ArrayList; /** * 面试题41-题目2:和为S的连续正数序列 * 小明很喜欢数学,有一天他在做数学作业时,要求计算出9~16的和,他马上就写出了正确答案 ...
- 有了这套flex页面布局方案,页面什么的,那都不是事。
一.CSS3弹性盒子弹性盒子是CSS3的一种新布局模式.CSS3 弹性盒( Flexible Box 或 flexbox),是一种当页面需要适应不同的屏幕大小以及设备类型时确保元素拥有恰当的行为的布局 ...
- UVA - 10815 - Andy's First Dictionary STL
Andy, 8, has a dream - he wants to produce his very own dictionary. This is not an easy task for him ...
- shell date time
In Bash: get year-month-day from date DATE=`date +%Y-%m-%d`get year-month-day hour:minute:second fro ...