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.49BAKstringsdebugBAT000001.bat”,其内容为
[
@echo off
ml /Cx /nologo /DDOS386 /DM_I386 /Zm /coff /c /Fo ".debug""strxmov".obj "e:mysql-3.23.49BAKstringsstrxmov.asm"

if errorlevel 1 goto VCReportError
goto VCEnd
:VCReportError
echo Project : error PRJ0019: 工具从"正在执行自定义生成步骤"
exit 1
:VCEnd
]
正在创建命令行“"e:mysql-3.23.49BAKstringsdebugBAT000001.bat"”
正在创建临时文件“e:mysql-3.23.49BAKstringsdebugBAT000002.bat”,其内容为
[
@echo off
ml /Cx /nologo /DDOS386 /DM_I386 /Zm /coff /c /Fo ".debug""strings".obj "e:mysql-3.23.49BAKstringsstrings.asm"

if errorlevel 1 goto VCReportError
goto VCEnd
:VCReportError
echo Project : error PRJ0019: 工具从"正在执行自定义生成步骤"
exit 1
:VCEnd
]
正在创建命令行“"e:mysql-3.23.49BAKstringsdebugBAT000002.bat"

修改E:mysql-3.23.49strings 下的 strings.vcproj

<File
            RelativePath="Strxmov.asm">
            <FileConfiguration
                Name="Release|Win32">
                <Tool
                    Name="VCCustomBuildTool"
                    CommandLine="ml /Cx /nologo /DDOS386 /DM_I386 /Zm /coff /c /Fo .debugStrxmov.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 .debugStrxmov.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 .debugstrings.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 .debugstrings.obj &quot;$(InputPath)&quot;
"
                    Outputs="$(OutDir)$(InputName).obj"/>
            </FileConfiguration>
        </File>

error 2:

正在编译...
cxx_txn.cpp
../bdbuild_win32db_config.h(218) : fatal error C1083: 无法打开包含文件:“iostream.h”: No such file or directory
cxx_table.cpp
../bdbuild_win32db_config.h(218) : fatal error C1083: 无法打开包含文件:“iostream.h”: No such file or directory
cxx_mpool.cpp
../bdbuild_win32db_config.h(218) : fatal error C1083: 无法打开包含文件:“iostream.h”: No such file or directory
cxx_log.cpp
../bdbuild_win32db_config.h(218) : fatal error C1083: 无法打开包含文件:“iostream.h”: No such file or directory
cxx_lock.cpp
../bdbuild_win32db_config.h(218) : fatal error C1083: 无法打开包含文件:“iostream.h”: No such file or directory
cxx_except.cpp
../bdbuild_win32db_config.h(218) : fatal error C1083: 无法打开包含文件:“iostream.h”: No such file or directory
cxx_app.cpp
../bdbuild_win32db_config.h(218) : fatal error C1083: 无法打开包含文件:“iostream.h”: No such file or directory

在 E:mysql-3.23.49dbuild_win32下找到db_config.h
修改db_config.h 第218行   修改为

#include <iostream>
using namespace std;

error 3

cxx_txn.cpp
../bdbincludedb_cxx.h(52) : fatal error C1083: 无法打开包含文件:“iostream.h”: No such file or directory
cxx_table.cpp
../bdbincludedb_cxx.h(52) : fatal error C1083: 无法打开包含文件:“iostream.h”: No such file or directory
cxx_mpool.cpp
../bdbincludedb_cxx.h(52) : fatal error C1083: 无法打开包含文件:“iostream.h”: No such file or directory
cxx_log.cpp
../bdbincludedb_cxx.h(52) : fatal error C1083: 无法打开包含文件:“iostream.h”: No such file or directory
cxx_lock.cpp
../bdbincludedb_cxx.h(52) : fatal error C1083: 无法打开包含文件:“iostream.h”: No such file or directory
cxx_except.cpp
../bdbincludedb_cxx.h(52) : fatal error C1083: 无法打开包含文件:“iostream.h”: No such file or directory
cxx_app.cpp
../bdbincludedb_cxx.h(52) : fatal error C1083: 无法打开包含文件:“iostream.h”: No such file or directory

在E:mysql-3.23.49dbinclude下找到 db_cxx.h, 定位到52行修改为

#include <iostream>
using namespace std;


error 4

LINK : fatal error LNK1181: 无法打开输入文件“mysqlclient.lib”

生成日志保存在“file://e:mysql-3.23.49clientmysqlcheck___Win32_ReleaseBuildLog.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.49data
innodb_data_home_dir=E:mysql-3.23.49data
innodb_data_file_path=ibdata1:30M
原文地址:https://www.cnblogs.com/zengkefu/p/4859265.html