XP 下编译MySQL (转)


转一(http://www.xianfen.net/Article137.aspx

因工作需要,编译MySQL,查找到MySQL官方的Windows下编译MySQL的文档,地址为:http://forge.mysql.com/wiki/Building_MySQL_on_Windows

按照文档知道一步一步操作即可。
 
一. 环境准备:
1. 获取MySQL最新源码:当前版本为5.1.44:http://dev.mysql.com/downloads/mysql/ (Windows (x86, 32-bit), ZIP Archive),解压到工作目录,如C:\MySQL
2. 安装VS2008,任何版本都可。如果是Express版本,需要再安装Windows SDK, Server 2003 R2 Platform SDK下载地址为:http://www.microsoft.com/downloads/details.aspx?FamilyId=F26B1AA4-741A-433A-9BE5-FA919850BDBF&displaylang=en
这里用的是VS2008 Dev版本。
3. 安装CMake(Windows版本),下载地址:http://www.cmake.org/cmake/resources/software.html, 旧版本可能不支持生成VS2008解决方案,推荐用最新版本。
注意:安装路径最好为英文,并且不要有空格。安装后将bin路径添加到系统环境变量。
4. 安装GNUWin32 Bison,下载地址为:http://gnuwin32.sourceforge.net/packages/bison.htm, 同样安装路径最好为英文,并且不要有空格。安装后将bin路径添加到系统环境变量。
5. 安装CygWin,下载地址为:http://www.cygwin.com/setup.exe, 选择模块时要选上Perl and Python模块。
注意:如果只编译,不做test,可不安装CygWin. 
 
二. 编译源代码:
1. 源码目录中sql/sql_locale.cc文件包含各地本地化语言,默认用的UTF-8 without BOM编码,编译器不能正确识别,用含有编码转换功能的文本编辑器将其另存为为UTF-8编码格式。
 
2. 控制台进入MySQL根目录,运行Win\configure.js脚本,脚本的参数为:
WITH_INNOBASE_STORAGE_ENGINE         Enable particular storage engines
WITH_PARTITION_STORAGE_ENGINE
WITH_ARCHIVE_STORAGE_ENGINE
WITH_BLACKHOLE_STORAGE_ENGINE
WITH_EXAMPLE_STORAGE_ENGINE
WITH_FEDERATED_STORAGE_ENGINE
__NT__                             Enable named pipe support
MYSQL_SERVER_SUFFIX=<suffix>        Server suffix, default none
COMPILATION_COMMENT=<comment>  Server comment, default "Source distribution"
MYSQL_TCP_PORT=<port>             Server port, default 3306
CYBOZU                            Default character set is UTF8
EMBED_MANIFESTS                  Embed custom manifests into final exes, otherwise VS
 default will be used. (Note - This option should only be
 used by MySQL AB.)
WITH_EMBEDDED_SERVER            Configure solution to produce libmysqld.dll
 and the static mysqlserver.lib 
 
因此,该命令行可以是如下所示。
Cscript win\configure.js WITH_INNOBASE_STORAGE_ENGINE WITH_PARTITION_STORAGE_ENGINE MYSQL_SERVER_SUFFIX=-pro
运行结果应该与如下结果类似:
Microsoft (R) Windows Script Host Version X.X
Copyright (C) Microsoft Corporation XXXX-XXXX. All rights reserved.
 
done!
 
3. 创建VS解决方案,在MySQL源文件Win目录下有一些批处理:
build-vs71.bat VS2003
build-vs8.bat VS2005
build-vs8_x64.bat VS2005,编译出64bit MySQL
build-vs9.bat VS2008
build-vs9_x64.bat VS2008,编译出64bit MySQL
这些批处理内调用的是CMake,可以在命令行敲入CMake,查看CMake支持的VS版本。
这里我们用VS2008,目标运行平台为32bit,所以运行Win\build-vs9.bat。
运行后,在MySQL根目录生成了MySql.sln,用VS2008打开,可以看到有56个项目。
 
4. 编译:选择编译模式(如Release),然后编译。编译过程中会生成数千个警告,都是源文件编码引起的(也有可能是我的Windows当前区域选项为中国引起的),可忽略。
如果编译过程中提示error PRJ0019: A tool returned an error code from "Generating sql_yacc.h, sql_yacc.cc”, 基本是GNUWin32 Bison路径中有空格引起的。从output窗口可以看到详细的出错信息。
 
三. 测试、部署:
[这一步需要CygWin]在CygWin下,进入MySQL源文件的mysql-test目录可以执行个中test。如:$./mysql-test-run.pl --manual-debug alter_table等。
 
部署:按照下载的MySQL zip安装包组织好目录结构:
 
1. 准备my.ini文件:
新建一个my.ini文件,内容为:
[mysqld]
# MySQL目录
basedir=C:/mysql
# MySQL数据库存放的目录
datadir=C:/mysql/data
放Windows目录下。
 
2. 安装、启动MySQL服务。
mysqld install mysql
net start mysql
 

3. 运行MySQL目录下的bin\Mysql.exe,即可执行命令或查询语句。


转二(http://www.cnblogs.com/yuemenglong/archive/2011/06/14/2080262.html

今天摆弄了半天,终于把mysql在windows上编译通过了,特别记录下来,分享给大家。

我下载的是mysql-5.5.13,下载后,打开根目录下面的INSTALL-WIN-SOURCE文件,里面让我访问网址:

http://dev.mysql.com/doc/refman/5.1/en/windows-source-build.html,按照上面的做。

我就按照网页上说的来,发现怎么搞也搞不定,一开始有一步:

cmake win/configure.js –XXX,怎么也过不去,后来发现,就没有win/configure.js这个文件,在看上面的网址,其实说的是mysql-5.1.xx版的方法,我去,竟然压缩包里的文档没有更新,后来在网上找了找,发现了5.5.xx版的文档,就按照这个文档来呗。

先下载cmake和bison的windows版本,cmake直接双击安装,一路next,中间有一步可以选择添加到环境变量里面, bison的话默认安装目录在program files下面,这个要改掉,改成中间一个没有括号的路径,我直接安装到C盘下面了,就是C:/GnuWin32,然后将C:/GnuWin32/bin添加到环境变量里。

然后进入mysql的根目录下,输入cmake . -G "Visual Studio 9 2008",正常的话会有XXX done什么的。

成功的话会有MySQL.sln和一大堆.vcproj文件,打开MySQL.sln,就可以看到整个解决方案了,在编译之前,建议打开sql/sql_locale.cc文件,将其用utf-8格式再保存一遍,不然编译过程当中会有大量错误。然后就可以生成解决方案了,不过我在生成过程当中会老是冒出来链接器停止工作什么什么的,最后编完了链接出了大量问题,会出现fatal error LNK1000: Internal error during IncrBuildImage这种错误,我出现了23个,什么都没改,又编了一遍,========== 生成: 成功26 个,失败0 个,最新62 个,跳过10 个==========,貌似没有错误了,不知道编译器是怎么搞的。

除了用sln编译外,也可以用命令行编译,根据文档,编译命令为:

"C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\devenv.exe" MySQL.sln /build RelWithDebInfo,

编译安装文件的命令为:

"C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\devenv.exe" MySQL.sln /build RelWithDebInfo /project initial_database

"C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\devenv.exe" MySQL.sln /build RelWithDebInfo /project package

如果没有任何问题,根据文档,这个命令会在根目录下生成mysql-5.5.13-win32.zip这个文件。

清理的命令为

"C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\devenv.exe" MySQL.sln /clean

Del CMakeCache.txt

如果用sln生成的过程当中initial_database这个项目有错误的话,我的解决方法是把sql/locale.cc下的my_locales结构体下的除了第一个&my_locale_en_US,和最后一NULL之外其他的值全部删掉(或注释掉),我这么干了貌似没有什么副作用,主要在于汉字和日文这些好像识别起来有点问题。

如果能够在根目录下生成zip文件,证明整个操作没有问题,zip里的bin文件夹里是最全的程序包,调试的话可以执行里面的mysqld-debug.exe,用下面的参数:

mysqld-debug --debug –-standalone。

会出现带有窗口的mysql,正常情况下是没有的,只能用服务方式启动。

这下可以通过vs附加到进程的方式调试了,计划下一次写一下怎么在windows下调试mysql的。

转载于:https://my.oschina.net/picasso/blog/31934

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值