详细讲解如何编译MySQL内核

2016-02-19 18:03 3 1 收藏

想要天天向上,就要懂得享受学习。图老师为大家推荐详细讲解如何编译MySQL内核,精彩的内容需要你们用心的阅读。还在等什么快点来看看吧!

【 tulaoshi.com - 编程语言 】

  在最新的版本中,windows环境与linux环境下使用一套代码。比如mysql-6.0.4-alpha版本中的INSTALL-WIN-SOURCE文件的描述:

  TobuildMySQLonWindowsfromsource,youmustsatisfythe
  followingsystem,compiler,andresourcerequirements:
  *Windows2000,WindowsXP,ornewerversion.WindowsVistais
  notsupporteduntilMicrosoftcertifiesVisualStudio2005on
  Vista.
  *CMake,whichcanbedownloadedfromhttp://www.cmake.org.
  Afterinstalling,modifyyourpathtoincludethecmake
  binary.
  *MicrosoftVisualC++2005ExpressEdition,VisualStudio.Net
  2003(7.1),orVisualStudio2005(8.0)compilersystem.
  *IfyouareusingVisualC++2005ExpressEdition,youmust
  alsoinstallanappropriatePlatformSDK.Moreinformationand
  linkstodownloadsforvariousWindowsplatformsisavailable
  fromhttp://msdn.microsoft.com/platformsdk/.
  *IfyouarecompilingfromaBitKeepertreeormakingchanges
  totheparser,youneedbisonforWindows,whichcanbe
  downloadedfrom
  http://gnuwin32.sourceforge.net/packages/bison.htm.Download
  thepackagelabeled"Completepackage,excludingsources".
  Afterinstallingthepackage,modifyyourpathtoincludethe
  bisonbinaryandensurethatthisbinaryisaccessiblefrom
  VisualStudio.
  *Cygwinmightbenecessaryifyouwanttorunthetestscript
  orpackagethecompiledbinariesandsupportfilesintoaZip
  archive.(Cygwinisneededonlytotestorpackagethe
  distribution,nottobuildit.)Cygwinisavailablefrom
  http://cygwin.com.
  *3GBto5GBofdiskspace.

  通过这样的方法,生成项目文件,从而可以通过vs工具进行编译。在先前的版本中,windows下的代码和linux下的代码是两个压缩包,比如windows下的一个软件包名为,mysql-5.1.7-beta-win-src.zip。

  这里我选择5.1.7作为分析的对象。

  安装代码的步骤:

  1.解压缩文件包mysql-5.1.7-beta-win-src.zip。

  2.使用vs2003打开项目文件mysql.sln。

  3.设置mysqld项目为启动项目。

  4.在mysqld的属性页设置命令参数为:--console。这样就可以用debug方式调试代码了。

图1:配置命令参数

  5.设置断点,比如查询的总入口是handle_select函数。

  6.编译mysql项目,将会在mysql-5.1.7-betaclient_debug目录下生成mysql.exe。

  7.使用“启动新实例”或者“进入单步执行新实例”进行调试。

图2:执行调试操作

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/bianchengyuyan/)

  8. mysql-5.1.7-betaclient_debug目录下生成mysql.exe,执行语句,将会执行到断点进行调试。

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/bianchengyuyan/)

图3:进入调试状态

  9.相应的数据文件,见mysql-5.1.7-betadata目录。

来源:https://www.tulaoshi.com/n/20160219/1616698.html

延伸阅读
原内核rh9自带的2.4.20 新内核2.4.20 patched to 2.4.21-pre6 (patch -p1 就一个/和一个swap分区 /分区用的是reiserfs fs 以新的内核重启后,发现以下几个明显错误,例如数个/dev/tty1,/dev/tty2找不到文件.最关键的是最后显示的reiserfsck could not open filesystem on /dev/hdb3 fsck.reiserfs for device exited w...
    内核简介 内核,是一个操作系统的核心。它负责管理系统的进程、内存、设备驱动程序、文件和网络系统,决定着系统的性能和稳定性。     Linux的一个重要的特点就是其源代码的公开性,所有的内核源程序都可以在/usr/src/linux下找到,大部分应用软件也都是遵循GPL而设计的,你都可以获取相应的源程...
写这篇文章的目的只是告诉朋友们如何编译MySQL代码,或许有些人觉得从Windows平台编译MySQL的代码有些复杂,其实不然。如果您对本文中所提到的知识有任何疑问可以透过CSDN的MySQL板或者MySQL@CHINA支援论坛寻求帮助。这篇文章中所提到的东西没有任何的创新性,只是对MySQL已有文档的总结。 一、为什么要编译代码 我不知道阅读...
动态数组涉及的文件是innodb存储引擎的三个文件:dyn0dyn.h、dyn0dyn.ic以及dyn0dyn.c。 这是一个基本的组件功能,是作为一个动态的虚拟线性数组。数组的基本元素是byte。动态数组dyn主要用来存放mtr的锁定信息以及log。Dyn在实现上,如果block需要分裂节点,则会使用一个内存堆。每个blok块存储数据的数据字段的长度是固定的(默认值...
说明:Apache整合PHP有两种方式:一种是DSO模式,把PHP当作Apache的外部模块来调用,这样增加了Apache的灵活性,但会带来5%的性能降低;另一种方式是把PHP编译进Apache的内核,这样牺牲了以后调整的灵活性(每次对PHP的重新编译,都需要再次编译Apache),但性能会高一些。对Perl也是如此。相比之下,本人更愿意使用第二种方式,即把PHP编译进A...

经验教程

589

收藏

80
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部