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 1 goto VCReportError
goto VCEnd
:VCReportError
echo Project : error PRJ0019: 工具从"正在执行自定义生成步骤"
exit 1
: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 1 goto VCReportError
goto VCEnd
:VCReportError
echo Project : error PRJ0019: 工具从"正在执行自定义生成步骤"
exit 1
: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 &quot;$(InputPath)&quot;
"
                    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 &quot;$(InputPath)&quot;
"
                    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 &quot;$(InputPath)&quot;
"
                    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 &quot;$(InputPath)&quot;
"
                    Outputs="$(OutDir)\$(InputName).obj"/>
            </FileConfiguration>
        </File>

error 2:

正在编译...
cxx_txn.cpp
../bdb\build_win32\db_config.h(218) : fatal error C1083: 无法打开包含文件:“iostream.h”: No such file or directory
cxx_table.cpp
../bdb\build_win32\db_config.h(218) : fatal error C1083: 无法打开包含文件:“iostream.h”: No such file or directory
cxx_mpool.cpp
../bdb\build_win32\db_config.h(218) : fatal error C1083: 无法打开包含文件:“iostream.h”: No such file or directory
cxx_log.cpp
../bdb\build_win32\db_config.h(218) : fatal error C1083: 无法打开包含文件:“iostream.h”: No such file or directory
cxx_lock.cpp
../bdb\build_win32\db_config.h(218) : fatal error C1083: 无法打开包含文件:“iostream.h”: No such file or directory
cxx_except.cpp
../bdb\build_win32\db_config.h(218) : fatal error C1083: 无法打开包含文件:“iostream.h”: No such file or directory
cxx_app.cpp
../bdb\build_win32\db_config.h(218) : 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.49
datadir=E:\mysql-3.23.49\data
innodb_data_home_dir=E:\mysql-3.23.49\data
innodb_data_file_path=ibdata1:30M

 

posted @ 2015-10-07 19:58  zengkefu  阅读(1019)  评论(0编辑  收藏  举报