首页 > 代码库 > 在win7 下编译MySQL源码

在win7 下编译MySQL源码


MySQL

MySQL是一款优秀的开源数据库,在阿里、网易等各个互联网公司中有着广泛的应用。尽管各种NoSQL大行其道,但是关系型数据库依然必不可少。

作为一个新手,在Win7下用源码安装MySql数据库并不容易。我自己都折腾了好几天。今天把安装过程记录下来,其一是为了方便自己以后学习,其二则是分享过程,让学习者能够从我这篇文章中受益。

1. 编译环境及源码下载

编译环境Visual Studio 2010 (Win7 32)

编译工具

bison-2.4.1-setup.exe

下载地址:http://nchc.dl.sourceforge.net/project/gnuwin32/bison/2.4.1/bison-2.4.1-setup.exe

安装位置:D:\GnuWin32

cmake-3.0.0-win32-x86.exe

下载地址:http://www.cmake.org/files/v3.0/cmake-3.0.0-win32-x86.exe

安装位置:D:\CMake

MySQL源码:mysql-5.5.31.zip

下载地址:http://downloads.skysql.com/archives/mysql-5.5/mysql-5.5.31.zip

注意: cmakebison的安装路径不要有空格,并且把cmakebison都加到环境变量path下,cmake在安装的时候有选择项,bison需要手动添加。

2. 编译MySQL源码

MySQL源码解压到D:\mysql-source目录下,最后形成了目录结构如下:wKiom1On3dujNgpVAAFpDttc1XQ743.jpg

第一步:在上图的目录中打开命令行窗口,并输入如下的命令:

wKiom1On3fCykI6bAABg87oIWog074.jpg

 

这就是用cmake生成vs 2010的解决方案,其中的“.”表示当前目录。

 

第二步:用记事本把D:\mysql-source\mysql-5.5.31\sql\sql_locale.cc另存为utf8格式。

 

第三步:把源码工程导入到VS 2010中。【文件】->【打开】->【项目/解决方案】,选择D:\mysql-source\mysql-5.5.31\MySQL.sln文件,确定即可。导入后的截图如下:

wKiom1On3hCzCsHVAAE8BGhrfhg761.jpg

 

 

第四步:编译mysqld。到mysqld项目,然后【鼠标右键】->【生成】即可,如果出错,再编译一次;如果再次出错,请检查你的cmake和bison的安装及环境变量设置。

wKioL1On3fuj-bWAAAD_36b3MGc907.jpg

 

最后在D:\mysql-source\mysql-5.5.31\sql\Debug目录下生成mysqld.exe,则表示编译成功。

编译后,可以试着运行一下,转到D:\mysql-source\mysql-5.5.31\sql\Debug目录,打开命令行工具,并输入如下的命令:mysqld.exe --debug --standalone

wKioL1On3hmgXeHrAAE_8zie90s140.jpg

 

看到一个断言错误,并标注了源码文件及行号:mysqld.cc  line 4233,那么我们定位到源码:

wKiom1On3l7CR-H1AADqK4y0JMo176.jpg

 

并把该行代码注释掉。并重新编译mysqld工程。再次运行刚才的命令,没有报错。

 

第五步:验证程序

为了证明编译的mysqld.exe能够正常工程,下载mysql免安装版mysql-5.5.31-win32 zip下载地址为:http://cdn.mysql.com/archives/mysql-5.5/mysql-5.5.31-win32.zip解压到D:\MySql\official-mysql目录后,用自己编译好的mysqld.exe替换D:\MySql\official-mysql\bin\mysqld.exe。然后在命令行运行mysqld.exe,启动服务端程序。

wKiom1On3muyD0H4AAC0uy-VKpM475.jpg

 

然后再打开一个命令行窗口,输入mysql -uroot -p, 由于没有设置密码,输入密码处直接回车,连接到数据库。

wKioL1On3kuQncIHAAF54Z-ep1o621.jpg

 

 

最后,别忘记在命令行窗口输入:mysqladmin.exe -uroot shutdown命令来关闭mysql服务。

wKioL1On3lbzGtJ_AABL-2TQlkE996.jpg

 

 

本文出自 “每天进步一点点” 博客,请务必保留此出处http://sbp810050504.blog.51cto.com/2799422/1429838