`

mysql5.1在windows下的编译方法

阅读更多

编译步骤

1、从mysql.com上下载最新源码mysql-5.1.35.zip,近40M,需要点耐心 -- 中间网站提示我不是可信任的用户,让我填表确认,填了几次都不行,最后将fixfox关了,干了会活再回来有能下载了,呵呵,是不是ORACLE故意制造麻烦,也未可知;

2、解压,阅读INSTALL-SOURCE和INSTALL-WIN-SOURCE这两个安装文件,发现文件写的一塌糊涂,前言不搭后语,总算看了个大概顺序,开始编译安装;

3、编译环境

需要VC2005及以上--呵呵,正好我机器上有个盗版的

编译还需要cmake,这个久仰大名,就是没有用过,从http://www.cmake.org下载了个最新的CMake 2.6,很快安装完成,安装目录D:\CMake 2.6;

4、执行脚本

win\configure.js WITH_INNOBASE_STORAGE_ENGINE WITH_PARTITION_STORAGE_ENGINE MYSQL_SERVER_SUFFIX=-pro

我想支持事务,所以用INNOBASE引擎,这个好像比较出名,在mysql之前已经被oracle收购

5、制作工程

执行win\build-vs8.bat

提示找不到cmake,估计是cmake安装后路径没有加进来,加上

set PATH=%PATH%;D:\CMake 2.6\bin

继续build-vs8.bat成功,cmake真不多,自动给做了一个MySql.sln

6、编译

用vc2005打开MySql.sln ,就是一对工程,开始编译吧,呵呵,一起顺利。但最后提示失败。郁闷!

根据错误提示找到sql_locale.cc文件,发现里面都是乱字符,大概看了一下,这个文件大至是个本地化文件,显示各地的月、星期的表示方法,但印度、日本、韩国、中国等字体都是乱字符,造成字符串""的双引号被转义了,造成了语法错误。我开始不相信有问题,又重新解压了这个文件,发现就是由问题。没办法,baidu一下解决办法,发现查不到,google一下,查到一些信息(呵呵,google就是比百度强)

解决办法:先在ultraEdit中转换为utf-8,然后再在vc2005中打开就没有问题了,看来是文件格式问题。

重新编译就成功了。

7、运行

好不容易在sql\debug目录下找到mysqld.exe(该死的文档中没有说),运行一把,已启动就报错。还好,提示了位置在mysqld.cc中的static void test_lc_time_sz(),哼哼,谁叫我们有源码,直接打开源码看,这个函数调用的就是前面编译不通过的sql_locale.cc,单步跟踪一下,发现原来到日本语的时候,其字符串有三个汉字大小,按宽字符应该是长度为3,当mysql.cc中按utf8字符算长度,长度一下扩大一倍,变成6了,所以对不少,直接 assert退出,google了一下无解,一怒之下将test_lc_time_sz()函数完全屏蔽,呵呵,mysqld就可以正常运行了。(难道这个问题一直没有发现,奇怪)

8、整一个运行环境

按照install文档的说法(当然其目录是错误的,完全按照其说明都找不到文件,郁闷),做了一个安装路径

mkdir D:\mysql
mkdir D:\mysql\bin
mkdir D:\mysql\data
mkdir D:\mysql\share
mkdir D:\mysql\scripts

mkdir D:\mysql\include
mkdir D:\mysql\lib
mkdir D:\mysql\lib\debug
mkdir D:\mysql\lib\opt

mkdir C:\mysql\sql-bench

copy D:\Downloads\mysql-5.1.35\client\debug\*.exe D:\mysql\bin
copy D:\Downloads\mysql-5.1.35\sql\debug\mysqld.exe D:\mysql\bin\mysqld-debug.exe
xcopy D:\Downloads\mysql-5.1.35\scripts\*.* D:\mysql\scripts /E
xcopy D:\Downloads\mysql-5.1.35\sql\share\*.* D:\mysql\share /E

copy D:\Downloads\mysql-5.1.35\libmysql\debug\mysqlclient.lib D:\mysql\lib\debug
copy D:\Downloads\mysql-5.1.35\libmysql\libmysql.* D:\mysql\lib\debug
copy D:\Downloads\mysql-5.1.35\zlib\debug\zlib.* D:\mysql\lib\debug
copy D:\Downloads\mysql-5.1.35\libmysql\debug\mysqlclient.lib d:\mysql\lib\opt
copy D:\Downloads\mysql-5.1.35\include\*.h D:\mysql\include
copy D:\Downloads\mysql-5.1.35\libmysql\libmysql.def D:\mysql\include

在d:\mysqld-debug --console运行

提示一堆错误,有仔细看文档,需要建立一个配置文件

echo %WINDIR%

c:\windows

在这个目录下创建一个文本文件:my.ini

内容

[mysqld]
# set basedir to your installation path
basedir=D:/mysql
# set datadir to the location of your data directory
datadir=D:/mysql/data
注意是/不是\,别搞错了

运行
mysqld-debug.exe --console
打印
Fatal error: Can't open and lock privilege tables: Table 'mysql.host' doesn't exist

查了半天没有找到原因,天晚了,回去睡觉,明天继续。

早上有读文档,google,仍旧没有头绪,网上都是直接binary安装,没有源码编译安装,无前人经验。

分析应该是缺少一些配置文件,找目录,发现win下有个data目录,里面有个mysql目录,下面有timezone, host等文件,貌似配置文件,呵呵。

将win\data目录copy 到d:/mysql/data后,在启动mysqld-debug --console就oK了

9、测试运行环境

mysqladmin version status proc
mysqlshow -u root mysql
mysql test
mysql -u root -e "select Host, Db, User from db" mysql

my god!,都行

关闭server

mysqladmin -u root shutdown

也能正常关闭。




分享到:
评论

相关推荐

    mysql5.1在linux下的编译安装.docx

    mysql5.1在linux下的编译安装.docx

    MySql 5.1 参考手册.chm

    2.8.7. 在Windows下编译MySQL客户端 2.9. 安装后的设置和测试 2.9.1. Windows下安装后的过程 2.9.2. Unix下安装后的过程 2.9.3. 使初始MySQL账户安全 2.10. 升级MySQL 2.10.1. 从5.0版升级 2.10.2. 升级授权表 ...

    MySQL 5.1参考手册

    2.8.7. 在Windows下编译MySQL客户端 2.9. 安装后的设置和测试 2.9.1. Windows下安装后的过程 2.9.2. Unix下安装后的过程 2.9.3. 使初始MySQL账户安全 2.10. 升级MySQL 2.10.1. 从5.0版升级 2.10.2. 升级授权表 ...

    MySQL 5.1参考手册 (中文版)

    2.8.7. 在Windows下编译MySQL客户端 2.9. 安装后的设置和测试 2.9.1. Windows下安装后的过程 2.9.2. Unix下安装后的过程 2.9.3. 使初始MySQL账户安全 2.10. 升级MySQL 2.10.1. 从5.0版升级 2.10.2. 升级授权表 ...

    MySQL 5.1参考手册中文版

    2.8.7. 在Windows下编译MySQL客户端 2.9. 安装后的设置和测试 2.9.1. Windows下安装后的过程 2.9.2. Unix下安装后的过程 2.9.3. 使初始MySQL账户安全 2.10. 升级MySQL 2.10.1. 从5.0版升级 2.10.2. 升级授权表 ...

    MySQL 5.1官方简体中文参考手册

    2.8.7. 在Windows下编译MySQL客户端 2.9. 安装后的设置和测试 2.9.1. Windows下安装后的过程 2.9.2. Unix下安装后的过程 2.9.3. 使初始MySQL账户安全 2.10. 升级MySQL 2.10.1. 从5.0版升级 2.10.2. 升级授权表 ...

    MySQL 5.1中文手冊

    2.8.7. 在Windows下编译MySQL客户端 2.9. 安装后的设置和测试 2.9.1. Windows下安装后的过程 2.9.2. Unix下安装后的过程 2.9.3. 使初始MySQL账户安全 2.10. 升级MySQL 2.10.1. 从5.0版升级 2.10.2. 升级授权表 ...

    mysql5.1中文手册

    在Windows下编译MySQL客户端 2.9. 安装后的设置和测试 2.9.1. Windows下安装后的过程 2.9.2. Unix下安装后的过程 2.9.3. 使初始MySQL账户安全 2.10. 升级MySQL 2.10.1. 从5.0版升级 2.10.2. ...

    MySQL 5.1中文参考手册

    MySQL 5.1中文参考手册,自己编译的,方便大家,分享下

    MySQL5.1中文手册.rar

    这是MySQL参考手册的翻译版本,本手册编译于2006-7-27,目录及索引由官方HTML文档转换并加以修订.

    windows下可用的mod_auth_mysql模块(Apache2.2+MySQL5.1)

    用源码编译生成的Apache的扩展模块,可进行MySQL数据库认证。使用:放到modules下,在conf文件中加入 LoadModule mysql_auth_module modules/mod_auth_mysql.so重启服务即可

    MySQL5.1中文手册

    MySQL5.1中文手册 这是MySQL参考手册的翻译版本,本手册编译于2006-7-27,目录及索引由官方HTML文档转换并加以修订.

    MySQL5.1参考手册官方简体中文版

    2.8.7. 在Windows下编译MySQL客户端 2.9. 安装后的设置和测试 2.9.1. Windows下安装后的过程 2.9.2. Unix下安装后的过程 2.9.3. 使初始MySQL账户安全 2.10. 升级MySQL 2.10.1. 从5.0版升级 2.10.2. 升级授权表 ...

    mysql 5.1 中文手册

    mysql 5.1 官方中文手册 html已经编译为chm 无附加广告 有目录和全文搜索功能

    MySQL_5.1_zh中文手册

    MySQL_5.1_zh中文手册 本手册编译于2006-7-29,目录及索引由官方HTML文档转换并加以修订,如有链接错误请发送邮件至: hemono@gmail.com 。获取最新CHM及PDF版本,请访问:hemon.ecjtu.net 。 张伟,华东交通大学。

Global site tag (gtag.js) - Google Analytics