视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
mysql在windows下的编译_MySQL
2020-11-09 17:52:43 责编:小采
文档


今天摆弄了半天,终于把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 Studio9.0/Common7/IDE/devenv.exe" MySQL.sln /build RelWithDebInfo,

编译安装文件的命令为:

"C:/Program Files/Microsoft Visual Studio9.0/Common7/IDE/devenv.exe" MySQL.sln /build RelWithDebInfo /projectinitial_database

"C:/Program Files/Microsoft Visual Studio9.0/Common7/IDE/devenv.exe" MySQL.sln /build RelWithDebInfo /projectpackage

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

清理的命令为

"C:/Program Files/Microsoft Visual Studio9.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的。

下载本文
显示全文
专题