分类: Mysql/postgreSQL
2008-05-11 17:24:57
本章描述怎样获得并安装MySQL:
1. 要了解支持哪些平台。请注意并非所有支持的平台同等适合运行MySQL。在部分平台上会比其它平台更有效、稳定。详情请参见2.1.1节,“MySQL支持的操作系统” 。
2. 确定你应该使用的分发的版本。可获得MySQL的多个版本,大部分有多种分发版。你可以选择包含二进制(预编译)代码或源码形式的预打包分发。如果不能确定,则使用二进制分发版。对于想看我们的最新开发并帮助我们测试新代码的用户,我们提供了公共访问接口,可以访问我们最新的源码树。为了确定你应该使用的分发的版本和类型,请参见2.1.2节,“选择要安装的MySQL分发版”。
3. 下载想安装的分发版。对于能从其获得MySQL的站点列表,请参见2.1.3节,“怎样获得MySQL”。用来验证分发版完整性的指令参见2.1.4节,“通过MD5校验和或GnuPG验证软件包的完整性”。
4. 安装分发版。针对二进制代码和源码分发版的安装说明在2.2节,“使用二进制分发版的标准MySQL安装”中讲述。针对二进制代码和源码分发版的安装说明在2.8节,“使用源码分发版安装MySQL”中讲述。
注释:如果你想要将当前版本的MySQL升级到最新版本,而不是首次安装MySQL,关于升级过程和升级前应考虑的问题请参见2.10节,“升级MySQL”。
如果遇到安装问题,2.12节,“具体操作系统相关的注意事项”中提供了解决平台相关问题的信息。
5. 进行安装后的设置。安装MySQL后,请阅读2.9节,“安装后的设置和测试”。本节介绍了重要的信息,可以确保MySQL服务器正确工作。本节还描述了如何使尚未有密码的初始MySQL用户账户的安全。不管你是用二进制代码还是源码分发版来安装MySQL,这些过程均适用。
如果要运行MySQL基准脚本,必须使用支持MySQL的Perl。请参见2.13节,“Perl安装注意事项”。
在安装MySQL前,你应该:
1. 确定是否MySQL将运行在你的平台上。
2. 选择安装的分发版。
3. 下载分发版并验证其完整性。
本节包含执行上述步骤必需的信息。之后,你可以按照本章中后面几节的说明来安装选择的分发版。
本节列出了可以运行MySQL的操作系统。
我们使用GNU Autoconf,因此将MySQL移植到所有使用Posix线程和C++编译器的现代系统是可能的。(要求服务器支持线程。如果只是编译客户端代码,则只需要C++编译器)。我们主要在Linux(SuSE和Red Hat)、FreeBSD和Sun Solaris(版本8和9)上使用并开发本软件。
已经报告MySQL可以在下列操作系统/线程包的组合上成功地进行编译。注意,对于很多操作系统,原生的线程仅支持最新的版本。
· 有原生线程的AIX 4.x和5.x。请参见2.12.5.3节,“IBM-AIX注意事项”。
· Amiga。
· 包括MIT-pthreads包的BSDI 2.x。请参见2.12.4.4节,“BSD/OS 2.x版注意事项”。
· 有原生线程的BSDI3.0,3.1和4.x。请参见2.12.4.4节,“BSD/OS 2.x版注意事项”。
· 有原生线程的Digital Unix 4.x。请参见2.12.5.5节,“Alpha-DEC-UNIX(Tru64)版注意事项”.。
· 包括MIT-pthreads包的FreeBSD 2.x。请参见2.12.4.1节,“FreeBSD注意事项”。
· 有原生线程的FreeBSD 3.x和4.x。请参见2.12.4.1节,“FreeBSD注意事项”。
· 有LinuxThreads的FreeBSD 4.x。请参见2.12.4.1节,“FreeBSD注意事项”。
· 有DCE线程或MIT-pthreads包的HP-UX 10.20。请参见2.12.5.1节,“HP-UX 10.20版注意事项”。
· 有原生线程的HP-UX 11.x。请参见2.12.5.2节,“HP-UX 11.x版注意事项”。
· 有LinuxThreads 0.7.1+或glibc 2.0.7+,适合各种CPU的Linux 2.0+。请参见2.12.1节,“Linux注意事项”。
· Mac OS X。请参见2.12.2节,“Mac OS X注意事项”。
· NetBSD 1.3/1.4 Intel和NetBSD 1.3 Alpha(需要GNU make)。请参见2.12.4.2节,“NetBSD注意事项”。
· Novell NetWare 6.0。请参见2.6节,“在NetWare中安装MySQL”。
· 有原生线程的OpenBSD > 2.5。包括MIT-pthreads包的OpenBSD < 2.5。请参见2.12.4.3节,“OpenBSD 2.5版注意事项”。
· OS/2 Warp 3, FixPack 29和OS/2 Warp 4, FixPack 4. 参见2.12.6节,“OS/2注意事项”。
· 有最新FSU Pthreads移植包的SCO OpenServer 5.0.X。请参见2.12.5.8节,“SCO UNIX和OpenServer 5.0.x版注意事项”。
· SCO UnixWare 7.1.x。请参见2.12.5.9节,“SCO UnixWare 7.1.x和OpenUNIX 8.0.0版注意事项”。
· SCO Openserver 6.0.x。请参见2.12.5.10节,“SCO OpenServer 6.0.x版注意事项”。
· 有原生线程的SGI Irix 6.x。请参见2.12.5.7节,“SGI Irix注意事项”。
· SPARC和x86上有原生线程的Solaris 2.5和以上版本。请参见2.12.3节,“Solaris注意事项”。
· 包括MIT-pthreads包的SunOS 4.x。请参见2.12.3节,“Solaris注意事项”。
· Tru64 Unix。请参见2.12.5.5节,“Alpha-DEC-UNIX(Tru64)版注意事项”。
· Windows 9x、Me、NT、2000、XP和2003。请参见2.3节,“在Windows上安装MySQL”。
并非所有支持的平台同等适合运行MySQL。根据以下因素确定某个平台适合高负荷关键任务MySQL服务器的程度:
· 线程库的稳定性。可能某个平台的反应不错,但MySQL的稳定性取决于它所调用的线程库,不管其它部分是否完善。
· 内核和线程库利用均衡多处理器(SMP)系统的能力。换句话说,当进程创建一个线程时,应允许线程运行原进程所运行CPU之外的其它处理器。
· 内核和线程库运行在短范围频繁获取和释放互斥体而不需要过多地交换内容的多个线程的能力。如果执行pthread_mutex_lock()时产生的CPU时间太短,则会严重影响MySQL。如果不关注该问题,增加过多的CPU实际会降低MySQL的速度。
· 常规文件系统的稳定性和性能。
· 如果数据库表很大,文件系统处理大文件的能力和处理效率。
· 我们在该平台上使用MySQL AB的经验水平。如果我们熟悉一个平台,我们可以对具体平台进行优化并固定编译时间。我们还可以提供建议如何更好地为MySQL配置系统。
· 我们在类似配置下所完成的内部测试的数量。
· 在同一平台类似配置下成功运行MySQL的用户数。如果该数字很高,则说明遇到具体平台问题的几率要小得多。
根据前面的标准,允许MySQL的最好的平台是x86,安装SuSE Linux,使用2.4或2.6内核,和ReiserFS(或类似Linux分发版)和安装了 Solaris(2.7-9)的SPARC。FreeBSD排第三位,但我们真正希望一旦线程库得到改进,它也可以提高排名。从某一观点我们还希望提高其它MySQL目前正在上面编译、允许的平台的排名,但稳定性和性能上可以要求不同等级。这需要我们与MySQL所依赖的操作系统和库组件开发人员共同努力。如果你对改进某个组件感兴趣,可能影响其开发,需要更多的关于MySQL如何能运行得更好的说明,请向我们的MySQL internals发送邮件。请参见1.7.1.1节,“The MySQL邮件列表”。
请注意前面的对比并不是说一个操作系统总体上比另一个操作系统要好。我们只是讨论选择一个OS来专门运行MySQL。记住了这一点,如果考虑更多的因素,对比结果可能会不同。在某些情况下,一个OS比另一个OS好的原因只是我们已经为具体平台做出了更多的努力来进行测试和优化。我们只是陈述我们的观点帮助你选择运行MySQL的平台。
首先要作出决策,你是否想要使用最新的开发版本或最终的稳定版本。在MySQL开发过程中,同时存在多个发布系列,每个发布处在成熟度的不同阶段:
· MySQL 5.2是最新开发的发布系列,是将执行新功能的系列。不久的将来可以使用Alpha发行,以便感兴趣的用户进行广泛的测试。
· MySQL 5.1是当前稳定(产品质量)发布系列。只针对漏洞修复重新发布;没有增加会影响稳定性的新功能。
· MySQL 5.0是前一稳定(产品质量)发布系列。只针对严重漏洞修复和安全修复重新发布;没有增加会影响该系列的重要功能。
· MySQL 4.0和3.23是旧的稳定(产品质量)发布系列。该版本不再使用,新的发布只用来修复特别严重的漏洞(以前的安全问题)。
我们不认为有完全的冻结版,因为任何版本均需要对漏洞进行修复和其它修复。对于“某种程度的冻结”,我们是指我们可以在产品发布中增加一些不会影响当前工作的小东西。自然,前一系列的相关漏洞修复会移植到后面的系列。
通常, 如果你是第一次开始使用MySQL或想要将它移植到一些还没有二进制分发版的系统上,我们推荐使用最终的稳定版本。目前是MySQL 5.1。我们已经使用MySQL基准对所有MySQL发布进行了检查,包括来自开发系列的发布,在发布前还使用基准套件来测试它。
如果你正在运行一个老的系统并且想要升级,但是又不想冒险进行非无缝升级,应该升级到最新版本中你正使用的相同的发布系列(只有版本号的最后部分比你使用的新)。我们已经试着仅修复致命缺陷,对那个版本进行了很小的相对安全的改动。
如果你想要使用产品发布系列中所没有的新功能,你可以使用开发系列的版本。请注意开发发布不如产品发布稳定。
如果你想要使用包含所有最新补丁和漏洞修复的最新源码,可以使用我们的BitKeeper库。这些库还没有发布,但可以预览代码,将来的发布基于这些代码。
MySQL的命名机制使用由3个数字和一个后缀组成的版本号。例如,像mysql-5.0.9-beta的版本号这样解释:
· 第1个数字(5)是主版本号,描述了文件格式。所有版本5的发行都有相同的文件格式。
· 第2个数字(0)是发行级别。主版本号和发行级别组合到一起便构成了发行序列号。
· 第3个数字(9)是在此发行系列的版本号,随每个新分发版递增。通常你需要已经选择的发行(release)的最新版本(版本)。
每次更新后,版本字符串的最后一个数字递增。如果相对于前一个版本增加了新功能或有微小的不兼容性,字符串的第二个数字递增。如果文件格式改变,第一个数字递增。
后缀显示发行的稳定性级别。通过一系列后缀显示如何改进稳定性。可能的后缀有:
· alpha表明发行包含大量未被彻底测试的新代码。已知的缺陷应该在新闻小节被记录。请参见附录D:MySQL变更史。在大多数alpha版本中也有新的命令和扩展。alpha版本也可能有主要代码更改等开发。但我们在发布前一定对其进行测试。
· beta意味着该版本功能是完整的,并且所有的新代码被测试了,没有增加重要的新特征,应该没有已知的缺陷。当alpha版本至少一个月没有出现报导的致命漏洞,并且没有计划增加导致已经实施的功能不稳定的新功能时,版本则从alpha版变为beta版。
在以后的beta版、发布版或产品发布中,所有API、外部可视结构和SQL命令列均不再更改。
· rc是发布代表;是一个发行了一段时间的beta版本,看起来应该运行正常。只增加了很小的修复。(发布代表即以前所称的gamma 版)
· 如果没有后缀,这意味着该版本已经在很多地方运行一段时间了,而且没有非平台特定的缺陷报告。只增加了关键漏洞修复修复。这就是我们称为一个产品(稳定)或“通用”版本的东西。
MySQL的命名机制于其它产品稍有不同。一般情况,我们可以很放心地使用已经投放市场两周而没有被相同发布系列的新版本所代替的版本。
MySQL所有版本都经过我们的标准测试和基准测试运行,以保证它们可相当安全地使用。因为标准测试不断扩充以检测以前发现的缺陷,测试套件一直在改进之中。
所有版本都至少已经用下列套件进行了测试:
· 一个内部测试套件
mysql-test目录包含一整套测试案例。我们针对每个二进制服务器进行这些测试。关于该测试套件的详细信息参见27.1.2节,“MySQL测试套件”。
· MySQL基准套件
它运行一定范围的普通查询。它也是一个测试,检测最新的优化处理是否真的使代码更快。请参见7.1.4节,“MySQL基准套件”。
· crash-me测试
这尝试决定数据库支持什么功能和它的能力与限制是什么。请参见7.1.4节,“MySQL基准套件”。
另一个测试是在内部生产环境中使用最新MySQL版本,至少在一台机器上。我们有超过100GB的数据可供使用。
选择了MySQL的安装版本后,要做的第二项决策是你是使用源码分发版还是二进制分发版。大多数情况,如果你的平台上已经有了一个二进制分发版,你可能使用二进制分发版。大多数平台可以使用原格式二进制分发版,例如Linux使用RPM文件,Mac OS X使用DMG安装软件包。也可以使用Zip文件或压缩tar文件。
选择二进制分发版的理由:
· 二进制分发版比源码分发版更容易安装。
· 为了满足不同用户的需求,我们提供了两种不同的二进制版本:一个是编译过的带非事务储存引擎(小的快速库),另一个配置了最重要的扩展选项,例如事务安全表。两个版本均从相同的源码分发版编译而来。所有本地MySQL客户端均可以连接任一版本的MySQL服务器。
扩展MySQL库分发版标有-max后缀,配置了与mysqld-max相同的选项。请参见5.1.2节,“mysqld-max扩展MySQL服务器”。
如果想要使用MySQL-Max RPM,必须首先安装标准MySQL-server RPM。
在某些环境下,最好安装源码分发版MySQL:
· 你想要在某个明显的位置安装MySQL。标准二进制分发版可以安装到任何地方,但你想更加灵活地将MySQL组件放到某个地方。
· 你想要将mysqld配置一些标准二进制分发版中未包括的一些特殊特征。下面是一些你想要使用的最常用的选项:
o --with-innodb(在所有MySQL 5.1库版本中默认使用)
o --with-berkeley-db(只适合部分平台)
o --with-libwrap
o --with-名d-z-libs(适合部分二进制)
o --with-debug[=full]
· 你想要将mysqld配置一些标准二进制分发版中已经包括的一些特殊特征。例如,一般编译过的分发版支持所有字符集。如果你想要一个更小的MySQL服务器,可以重新编译只支持你需要的字符集。
· 你有一个专用编译器(例如pgcc)或想要使用更好地优化适用你的处理器的编译器选项。二进制分发版编译的选项适合同一处理器族的各种处理器。
· 你想要使用BitKeeper库中的最新源码,以访问所有最新漏洞修复。例如,如果你发现了漏洞并将它报告给MySQL开发小组,漏洞修复传递给源码库,你便可以访问它。发布实际发行后才会出现漏洞修复。
· 如果你想要阅读(或修改)构成MySQL的C和C++代码,你应该拿到源码分发版。源码总是最终的手册。
· 源码分发版也比二进制的分发版包含更多的测试和实例。
MySQL进展的相当快,我们想要与其它MySQL用户分享它。当我们有一个看来其它人似乎需要的非常有用的功能时,我们就试着制作一个发行版本。
我们也尝试帮助那些需要很容易实现的功能的用户,我们也关注我们授权的用户想要什么,我们更特别关注我们支持的客户想要什么,并且尽力帮助他们。
没有人一定要下载一个新版本,新闻小节中将告诉你新版本是否有一些你确实想要的东西。请参见附录D:MySQL变更史。
当更新MySQL时,我们使用下列策略:
· 将发布每个系列。每次发布时,版本的最后一个数字为同一系列前一版本的基础上加1。
· 稳定的测试过的产品版本每年准备出现1-2次,但是如果发现小缺陷,只有缺陷修复的一个版本将被发行。
· 工作版本/对旧版本的漏洞修复文件每4-8周出现一次。
· 对一些平台的二进制分发版,主要版本由我们制作。其它人可以为其它系统制作二进制分发版,但是可能不多见。
· 我们一旦识别并修正了非紧急但烦人的缺陷,则立即将其发布,可以从公共BitKeeper库中立即得到修复代码,并将包含到下一发布版中。
我们投入了大量的时间和工作来使我们的发布没有缺陷。我们从来没有发布过含有已知致命重复性缺陷的单一MySQL版本。(“致命”缺陷指能在正常应用中导致MySQL瘫痪的缺陷,对于正常查询产生错误答案,或有安全问题)。
我们已经将所有公开问题、缺陷和由设计决策决定的事宜记入文件。请参见A.8节,“MySQL中的已知事宜”。
我们的目标是修复一切可以修复的东西,而不会使稳定的MySQL版本变得不稳定。在某些情况,这意味着我们可以在开发版本中修复问题,而不是在稳定的 (产品) 版本。自然,我们会将这些问题记入文档,以便用户能知道。
下面描述了我们如何操作:
· 我们通过我们的客户支持列表、在 缺陷数据库和MySQL外部邮件列表来监控缺陷。
· 当前版本中所有被报导的缺陷被输入缺陷数据库。
· 当我们修复缺陷,我们总是为其设计一次测试案例,并将其包括进测试系统中,以确保不会漏检使缺陷再现。(所有修复的缺陷中大约90%的具有测试案例)。
· 为添加到MySQL中的所有新功能创建测试案例。
· 我们开始构建新的MySQL发布前,我们确保修复了MySQL版本(3.23.x、4.0.x、4.1.x、5.0.x等等)中所有被报导的重复性缺陷。如果某些内容不能修复(由于MySQL内部的一些设计决策),我们在本手册中记录下来。请参见A.8节,“MySQL中的已知事宜”。
· 我们在所有支持二进制的平台(15+平台)上构建并运行我们的测试套件和基准套件。
· 如果在某个平台上测试或基准套件失败,我们不会公布二进制。如果问题是由于源码中的普通缺陷,我们将进行修复并在所有系统上构建并测试。
· 构建和测试过程需要2-3天。如果在该过程中我们收到致命缺陷相关报告(例如,会造成内核转储),我们将修复该问题并重新启动构建过程。
· 在http://dev.mysql.com/上公布二进制后,我们则向mysql发出公告消并announce邮件列表。请参见1.7.1.1节,“The MySQL邮件列表”。公告消息包含所有发布的更改列表和已知问题。只有部分发版不需要已知的问题部分。
· 为了让我们的用户快速访问最新MySQL功能,我们每4-8周产生一个新的MySQL发布。每天构建源码快照,可以从获得。
· 如果,尽管经过我们最大的努力,我们在发布后仍收到缺陷报告,即在某个具体平台上出现严重问题,我们将立即进行修复,并为该平台构建一个新的 'a'版本。由于我们的大用户群,可以很快地查出并解决此类问题。
· 我们为保证稳定版本所做的跟踪记录不错。在最近150个发布中,我们只需要对其中不到10个重新构建。其中有3个案例,缺陷为我们的构建机器上的glibc 库,花了很长时间来跟踪。
作为MySQL AB的服务,我们提供了一套二进制MySQL分发版,已经在我们的站点上所列的系统或支持MySQL、友好地为我们提供访问的机器上的系统上编译过。
除了具体平台安装软件包格式提供的二进制分发版,我们还以压缩tar文件(.tar.gz文件)为多种平台提供了二进制分发版。请参见2.2节,“使用二进制分发版的标准MySQL安装”。
对于Windows分发版,参见2.3节,“在Windows上安装MySQL”。
使用脚本 Build-tools/Do-compile生成这些分发版,可以编译源码并使用scripts/make_binary_distribution创建二进制tar.gz文件。
通过下面的编译器和选项来配置并构建二进制分发版。可以查看各个库二进制tar文件分发版的脚本bin/mysqlbug内的变量COMP_ENV_INFO和 CONFIGURE_LINE来查看这些信息。
· Linux 2.4.xx x86中的gcc 2.95.3:
CFLAGS="-O2 -mcpu=pentiumpro" CXX=gcc CXXFLAGS="-O2 -mcpu=pentiumpro -felide-constructors" ./configure --prefix=/usr/local/mysql --with-extra-charsets=complex --enable-thread-safe-client --enable-local-infile --enable-assembler --disable-shared --with-client-ldflags=-all-static --with-mysqld-ldflags=-all-static
· Linux 2.4.x x86中的icc(Intel C++ Compiler 8.1或更高版本):
CC=icc CXX=icpc CFLAGS="-O3 -unroll2 -ip -mp -no-gcc -restrict" CXXFLAGS="-O3 -unroll2 -ip -mp -no-gcc -restrict" ./configure --prefix=/usr/local/mysql --localstatedir=/usr/local/mysql/data --libexecdir=/usr/local/mysql/bin --with-extra-charsets=complex --enable-thread-safe-client --enable-local-infile --enable-assembler --disable-shared --with-client-ldflags=-all-static --with-mysqld-ldflags=-all-static --with-embedded-server --with-innodb
请注意Intel 编译器8.1版和更高版有不同的“纯”C(icc)驱动程序和C++(icpc)驱动程序;如果你使用icc 8.0版本或较早的版本来构建MySQL,需要设置CXX=icc。
· Linux 2.4.xx Intel Itanium 2中的ecc (Intel C++ Itanium Compiler 7.0):
CC=ecc CFLAGS="-O2 -tpp2 -ip -nolib_inline" CXX=ecc CXXFLAGS="-O2 -tpp2 -ip -nolib_inline" ./configure --prefix=/usr/local/mysql --with-extra-charsets=complex --enable-thread-safe-client --enable-local-infile
· Linux 2.4.xx Intel Itanium中的ecc(Intel C++ Itanium Compiler 7.0):
CC=ecc CFLAGS=-tpp1 CXX=ecc CXXFLAGS=-tpp1 ./configure --prefix=/usr/local/mysql --with-extra-charsets=complex --enable-thread-safe-client --enable-local-infile
· Linux 2.4.xx alpha中的ccc(Compaq C V6.2-505 / Compaq C++ V6.3-006):
CC=ccc CFLAGS="-fast -arch generic" CXX=cxx CXXFLAGS="-fast -arch generic -noexceptions -nortti" ./configure --prefix=/usr/local/mysql --with-extra-charsets=complex --enable-thread-safe-client --enable-local-infile --with-mysqld-ldflags=-non_shared --with-client-ldflags=-non_shared --disable-shared
· Linux 2.x.xx ppc中的gcc 2.95.4:
CC=gcc CFLAGS="-O3 -fno-omit-frame-pointer" CXX=gcc CXXFLAGS="-O3 -fno-omit-frame-pointer -felide-constructors -fno-exceptions -fno-rtti" ./configure --prefix=/usr/local/mysql --localstatedir=/usr/local/mysql/data --libexecdir=/usr/local/mysql/bin --with-extra-charsets=complex --enable-thread-safe-client --enable-local-infile --disable-shared --with-embedded-server --with-innodb
· Linux 2.4.xx s390中的gcc 2.95.3:
CFLAGS="-O2" CXX=gcc CXXFLAGS="-O2 -felide-constructors" ./configure --prefix=/usr/local/mysql --with-extra-charsets=complex --enable-thread-safe-client --enable-local-infile --disable-shared --with-client-ldflags=-all-static --with-mysqld-ldflags=-all-static
· Linux 2.4.xx x86_64(AMD64)中的gcc 3.2.1:
CXX=gcc ./configure --prefix=/usr/local/mysql --with-extra-charsets=complex --enable-thread-safe-client --enable-local-infile --disable-shared
· Sun Solaris 8 x86中的gcc 3.2.3:
CC=gcc CFLAGS="-O3 -fno-omit-frame-pointer" CXX=gcc CXXFLAGS="-O3 -fno-omit-frame-pointer -felide-constructors -fno-exceptions -fno-rtti" ./configure --prefix=/usr/local/mysql --localstatedir=/usr/local/mysql/data --libexecdir=/usr/local/mysql/bin --with-extra-charsets=complex --enable-thread-safe-client --enable-local-infile --disable-shared --with-inno
· Sun Solaris 8 SPARC中的gcc 3.2:
CC=gcc CFLAGS="-O3 -fno-omit-frame-pointer" CXX=gcc CXXFLAGS="-O3 -fno-omit-frame-pointer -felide-constructors -fno-exceptions -fno-rtti" ./configure --prefix=/usr/local/mysql --with-extra-charsets=complex --enable-thread-safe-client --enable-local-infile --enable-assembler --with-named-z-libs=no --with-named-curses-libs=-lcurses --disable-shared
· Sun Solaris 8 SPARC 64-bit中的gcc 3.2:
CC=gcc CFLAGS="-O3 -m64 -fno-omit-frame-pointer" CXX=gcc CXXFLAGS="-O3 -m64 -fno-omit-frame-pointer -felide-constructors -fno-exceptions -fno-rtti" ./configure --prefix=/usr/local/mysql --with-extra-charsets=complex --enable-thread-safe-client --enable-local-infile --with-named-z-libs=no --with-named-curses-libs=-lcurses --disable-shared
· Sun Solaris 9 SPARC中的gcc 2.95.3:
CC=gcc CFLAGS="-O3 -fno-omit-frame-pointer" CXX=gcc CXXFLAGS="-O3 -fno-omit-frame-pointer -felide-constructors -fno-exceptions -fno-rtti" ./configure --prefix=/usr/local/mysql --with-extra-charsets=complex --enable-thread-safe-client --enable-local-infile --enable-assembler --with-named-curses-libs=-lcurses --disable-shared
· Sun Solaris 9 SPARC中的cc-5.0(Sun Forte 5.0):
CC=cc-5.0 CXX=CC ASFLAGS="-xarch=v9" CFLAGS="-Xa -xstrconst -mt -D_FORTEC_ -xarch=v9" CXXFLAGS="-noex -mt -D_FORTEC_ -xarch=v9" ./configure --prefix=/usr/local/mysql --with-extra-charsets=complex --enable-thread-safe-client --enable-local-infile --enable-assembler --with-named-z-libs=no --enable-thread-safe-client --disable-shared
· IBM AIX 4.3.2 ppc中的gcc 3.2.3:
CFLAGS="-O2 -mcpu=powerpc -Wa,-many " CXX=gcc CXXFLAGS="-O2 -mcpu=powerpc -Wa,-many -felide-constructors -fno-exceptions -fno-rtti" ./configure --prefix=/usr/local/mysql --with-extra-charsets=complex --enable-thread-safe-client --enable-local-infile --with-named-z-libs=no --disable-shared
· IBM AIX 4.3.3 ppc中的xlC_r(IBM Visual Age C/C++ 6.0):
CC=xlc_r CFLAGS="-ma -O2 -qstrict -qoptimize=2 -qmaxmem=8192" CXX=xlC_r CXXFLAGS ="-ma -O2 -qstrict -qoptimize=2 -qmaxmem=8192" ./configure --prefix=/usr/local/mysql --localstatedir=/usr/local/mysql/data --libexecdir=/usr/local/mysql/bin --with-extra-charsets=complex --enable-thread-safe-client --enable-local-infile --with-named-z-libs=no --disable-shared --with-innodb
· IBM AIX 5.1.0 ppc中的gcc 3.3:
CFLAGS="-O2 -mcpu=powerpc -Wa,-many" CXX=gcc CXXFLAGS="-O2 -mcpu=powerpc -Wa,-many -felide-constructors -fno-exceptions -fno-rtti" ./configure --prefix=/usr/local/mysql --with-extra-charsets=complex --enable-thread-safe-client --enable-local-infile --with-named-z-libs=no --disable-shared
· IBM AIX 5.2.0 ppc中的xlC_r(IBM Visual Age C/C++ 6.0):
CC=xlc_r CFLAGS="-ma -O2 -qstrict -qoptimize=2 -qmaxmem=8192" CXX=xlC_r CXXFLAGS="-ma -O2 -qstrict -qoptimize=2 -qmaxmem=8192" ./configure --prefix=/usr/local/mysql --localstatedir=/usr/local/mysql/data --libexecdir=/usr/local/mysql/bin --with-extra-charsets=complex --enable-thread-safe-client --enable-local-infile --with-named-z-libs=no --disable-shared --with-embedded-server --with-innodb
· HP-UX 10.20 pa-risc1.1中的gcc 3.1:
CFLAGS="-DHPUX -I/opt/dce/include -O3 -fPIC" CXX=gcc CXXFLAGS="-DHPUX -I/opt/dce /include -felide-constructors -fno-exceptions -fno-rtti -O3 -fPIC" ./configure --prefix=/usr/local/mysql --with-extra-charsets=complex --enable-thread-safe-client --enable-local-infile --with-pthread --with-named-thread-libs=-ldce --with-lib-ccflags=-fPIC --disable-shared
· HP-UX 11.00 pa-risc中的aCC(HP ANSI C++ B3910B A.03.50):
CC=cc CXX=aCC CFLAGS=+DAportable CXXFLAGS=+DAportable ./configure --prefix=/usr/local/mysql --localstatedir=/usr/local/mysql/data --libexecdir=/usr/local/mysql/bin --with-extra-charsets=complex --enable-thread-safe-client --enable-local-infile --disable-shared --with-embedded-server --with-innodb
· HP-UX 11.11 pa-risc2.0 64bit中的aCC(HP ANSI C++ B3910B A.03.33):
CC=cc CXX=aCC CFLAGS=+DD64 CXXFLAGS=+DD64 ./configure --prefix=/usr/local/mysql --with-extra-charsets=complex --enable-thread-safe-client --enable-local-infile --disable-shared
· HP-UX 11.11 pa-risc2.0 32bit中的aCC(HP ANSI C++ B3910B A.03.33):
CC=cc CXX=aCC CFLAGS="+DAportable" CXXFLAGS="+DAportable" ./configure --prefix=/usr/local/mysql --localstatedir=/usr/local/mysql/data --libexecdir=/usr/local/mysql/bin --with-extra-charsets=complex --enable-thread-safe-client --enable-local-infile --disable-shared --with-innodb
· HP-UX 11.22 ia64 64bit中的aCC(HP aC++/ANSI C B3910B A.05.50):
CC=cc CXX=aCC CFLAGS="+DD64 +DSitanium2" CXXFLAGS="+DD64 +DSitanium2" ./configure --prefix=/usr/local/mysql --localstatedir=/usr/local/mysql/data --libexecdir=/usr/local/mysql/bin --with-extra-charsets=complex --enable-thread-safe-client --enable-local-infile --disable-shared --with-embedded-server --with-innodb
· Apple Mac OS X 10.2 powerpc中的gcc 3.1:
CC=gcc CFLAGS="-O3 -fno-omit-frame-pointer" CXX=gcc CXXFLAGS="-O3 -fno-omit-frame-pointer -felide-constructors -fno-exceptions -fno-rtti" ./configure --prefix=/usr/local/mysql --with-extra-charsets=complex --enable-thread-safe-client --enable-local-infile --disable-shared
· FreeBSD 4.7 i386中的gcc 2.95.4:
CFLAGS=-DHAVE_BROKEN_REALPATH ./configure --prefix=/usr/local/mysql --with-extra-charsets=complex --enable-thread-safe-client --enable-local-infile --enable-assembler --with-named-z-libs=not-used --disable-shared
· 使用LinuxThreads的FreeBSD 4.7 i386中的gcc 2.95.4:
CFLAGS="-DHAVE_BROKEN_REALPATH -D__USE_UNIX98 -D_REENTRANT -D_THREAD_SAFE -I/usr/local/include/pthread/linuxthreads" CXXFLAGS="-DHAVE_BROKEN_REALPATH -D__USE_UNIX98 -D_REENTRANT -D_THREAD_SAFE -I/usr/local/include/pthread/linuxthreads" ./configure --prefix=/usr/local/mysql --localstatedir=/usr/local/mysql/data --libexecdir=/usr/local/mysql/bin --enable-thread-safe-client --enable-local-infile --enable-assembler --with-named-thread-libs="-DHAVE_GLIBC2_STYLE_GETHOSTBYNAME_R -D_THREAD_SAFE -I /usr/local/include/pthread/linuxthreads -L/usr/local/lib -llthread -llgcc_r" --disable-shared --with-embedded-server --with-innodb
· QNX Neutrino 6.2.1 i386中的gcc 2.95.3qnx-nto 20010315:
CC=gcc CFLAGS="-O3 -fno-omit-frame-pointer" CXX=gcc CXXFLAGS="-O3 -fno-omit-frame-pointer -felide-constructors -fno-exceptions -fno-rtti" ./configure --prefix=/usr/local/mysql --with-extra-charsets=complex --enable-thread-safe-client --enable-local-infile --disable-shared
下面的二进制是在由其它用户提供给MySQL AB的第三方系统上构建而成。这是免费赠送;MySQL AB没有完全控制这些系统,因此我们只能对在这些系统上构建的二进制提供有限的支持。
· SCO Unix 3.2v5.0.7 i386中的gcc 2.95.3:
CFLAGS="-O3 -mpentium" LDFLAGS=-static CXX=gcc CXXFLAGS="-O3 -mpentium -felide-constructors" ./configure --prefix=/usr/local/mysql --with-extra-charsets=complex --enable-thread-safe-client --enable-local-infile --with-named-z-libs=no --enable-thread-safe-client --disable-shared
· SCO UnixWare 7.1.4 i386中的CC 3.2:
CC=cc CFLAGS="-O" CXX=CC ./configure --prefix=/usr/local/mysql --with-extra-charsets=complex --enable-thread-safe-client --enable-local-infile --with-named-z-libs=no --enable-thread-safe-client --disable-shared --with-readline
· CO OpenServer 6.0.0 i386中的CC 3.2:
CC=cc CFLAGS="-O" CXX=CC ./configure --prefix=/usr/local/mysql --with-extra-charsets=complex --enable-thread-safe-client --enable-local-infile --with-named-z-libs=no --enable-thread-safe-client --disable-shared --with-readline
· Compaq Tru64 OSF/1 V5.1 732 alpha中的cc/cxx(Compaq C V6.3-029i / DIGITAL C++ V6.1-027):
CC="cc -pthread" CFLAGS="-O4 -ansi_alias -ansi_args -fast -inline speed -speculate all" CXX="cxx -pthread" CXXFLAGS="-O4 -ansi_alias -fast -inline speed -speculate all -noexceptions -nortti" ./configure --prefix=/usr/local/mysql --with-extra-charsets=complex --enable-thread-safe-client --enable-local-infile --with-named-thread-libs="-lpthread -lmach -lexc -lc" --disable-shared --with-mysqld-ldflags=-all-static
· SGI Irix 6.5 IP32中的gcc 3.0.1:
CC=gcc CFLAGS="-O3 -fno-omit-frame-pointer" CXXFLAGS="-O3 -fno-omit-frame-pointer -felide-constructors -fno-exceptions -fno-rtti" ./configure --prefix=/usr/local/mysql --with-extra-charsets=complex --enable-thread-safe-client --enable-local-infile --disable-shared
· FreeBSD/sparc64 5.0中的gcc 3.2.1:
CFLAGS=-DHAVE_BROKEN_REALPATH ./configure --prefix=/usr/local/mysql --localstatedir=/usr/local/mysql/data --libexecdir=/usr/local/mysql/bin --with-extra-charsets=complex --enable-thread-safe-client --enable-local-infile --disable-shared --with-innodb
在MySQL AB过去提供的二进制软件包中应用了下面的编译选项。这些二进制不再进行更新,但是在这里列出了这些编译选项供参考。
· Linux 2.2.xx SPARC中的egcs 1.1.2:
CC=gcc CFLAGS="-O3 -fno-omit-frame-pointer" CXX=gcc CXXFLAGS="-O3 -fno-omit-frame-pointer -felide-constructors -fno-exceptions -fno-rtti" ./configure --prefix=/usr/local/mysql --with-extra-charsets=complex --enable-thread-safe-client --enable-local-infile --enable-assembler --disable-shared
· Linux 2.2.x x686中的gcc 2.95.2:
CFLAGS="-O3 -mpentiumpro" CXX=gcc CXXFLAGS="-O3 -mpentiumpro -felide-constructors -fno-exceptions -fno-rtti" ./configure --prefix=/usr/local/mysql --enable-assembler --with-mysqld-ldflags=-all-static --disable-shared --with-extra-charsets=complex
· SunOS 4.1.4 2 sun4c中的gcc 2.7.2.1:
CC=gcc CXX=gcc CXXFLAGS="-O3 -felide-constructors" ./configure --prefix=/usr/local/mysql --disable-shared --with-extra-charsets=complex --enable-assembler
· SunOS 5.5.1(及以上版本)sun4u中的egcs 1.0.3a或2.90.27或gcc 2.95.2和更新版:
· CC=gcc CFLAGS="-O3" CXX=gcc CXXFLAGS="-O3 -felide-constructors -fno-exceptions -fno-rtti" ./configure --prefix=/usr/local/mysql --with-low-memory --with-extra-charsets=complex --enable-assembler
· SunOS 5.6 i86pc中的gcc 2.8.1:
CC=gcc CXX=gcc CXXFLAGS=-O3 ./configure --prefix=/usr/local/mysql --with-low-memory --with-extra-charsets=complex
· BSDI BSD/OS 3.1 i386中的gcc 2.7.2.1:
CC=gcc CXX=gcc CXXFLAGS=-O ./configure --prefix=/usr/local/mysql --with-extra-charsets=complex
· BSDI BSD/OS 2.1 i386中的gcc 2.7.2:
CC=gcc CXX=gcc CXXFLAGS=-O3 ./configure --prefix=/usr/local/mysql --with-extra-charsets=complex
· AIX 4.2中的gcc 2.7.2.2:
CC=gcc CXX=gcc CXXFLAGS=-O3 ./configure --prefix=/usr/local/mysql --with-extra-charsets=complex
如果你有更好的上述配置选项,可以向MySQL internals邮件列表发送邮件。请参见1.7.1.1节,“The MySQL邮件列表”。
在我们的站点中列出的MySQL 5.1发布的RPM分发版是由MySQL AB产生的。
如果你想要编译MySQL调试版本,应当在前面的configure命令中加上--with-debug或--with-debug=full,并去掉-fomit-frame-pointer选项。
我们的主镜像站点位于。
· MD5校验和
· 使用GnuPG、GNU Privacy Guard对签名进行加密
· 对于RPM软件包,使用内嵌式RPM完整性验证机制
下面的章节描述了如何使用这些方法。
如果你注意到MD5校验和与GPG签名不匹配,首先应尝试多次下载相关安装软件包,可以从其它镜像站点。如果你反复尝试仍不能成功验证安装软件包的完整性,请将此类问题通知给我们,包括完整的安装软件包名和你使用的下载站点,在<>或<>。不要使用缺陷-报告机制来报告下载问题。
下载MySQL安装软件包后,你应当确保它的MD5校验和与提供的MySQL下载页上的相匹配。每个安装软件包有唯一的校验和,可以用下面的命令来验证,其中package_name是你下载的安装软件包的名称:
shell> md5sum package_name
示例:
shell> md5sum mysql-st和ard-5.1.2-alpha-linux-i686.tar.gz
aaab65abbec64d5e907dcd41b8699945 mysql-st和ard-5.1.2-alpha-linux-i686.tar.gz
你应当验证结果校验和(十六进制数字字符串)与下载页上相关安装软件包下面显示的校验和相匹配。
注释:一定要验证归档文件(例如,.zip或.tar.gz文件)的校验和,而不是其中包括的文件。
请注意并非所有操作系统支持md5sum命令。在一些操作系统上,只是称为md5,另一些根本不装载它。在Linux中,它是GNU Text Utilities安装软件包的一部分,适合各种平台。可以从下载源码。如果你已经安装了OpenSSL,还可以使用命令openssl md5 package_name。提供了DOS/Windows使用的md5命令行实用工具。winMd5Sum是一个图形MD5检查工具,可以从获得。
验证安装软件包完整性和真实性的另一个方法是使用加密签名。这比使用MD5校验和更可靠,但是需要更多的工作。
MySQL AB用GnuPG(GNU Privacy Guard)对下载MySQ软件包进行签名。GnuPG是开放源码,不同于Phil Zimmermann的闻名的Pretty Good Privacy (PGP)。关于GnuPG和如何获得并安装到你的系统的详细信息,请参见。大多数Linux分发版装有默认安装的GnuPG。关于GnuPG的详细信息,参见 。
要想验证具体安装软件包的签名,你首先需要获得MySQL AB公共GPG构建密钥的拷贝。可以从下载密钥。你想要获得的密钥名为build@mysql.com。另外,可以从下面的文本直接剪切并粘贴密钥:
Key ID:
pub 1024D/5072E1F5 2003-02-03
MySQL Package signing key ()
Fingerprint: A4A9 4068 76FC BD3C 4567 70C8 8C71 8D3B 5072 E1F5
Public Key (ASCII-armored):
-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: GnuPG v1.0.6 (GNU/Linux)
Comment: For info see
mQGiBD4+owwRBAC14GIfUfCyEDSIePvEW3SAFUdJBtoQHH/nJKZyQT7h9bPlUWC3
RODjQReyCITRrdwyrKUGku2FmeVGwn2u2WmDMNABLnpprWPkBdCk96+OmSLN9brZ
fw2vOUgCmYv2hW0hyDHuvYlQA/BThQoADgj8AW6/0Lo7V1W9/8VuHP0gQwCgvzV3
BqOxRznNCRCRxAuAuVztHRcEAJooQK1+iSiunZMYD1WufeXfshc57S/+yeJkegNW
hxwR9pRWVArNYJdDRT+rf2RUe3vpquKNQU/hnEIUHJRQqYHo8gTxvxXNQc7fJYLV
K2HtkrPbP72vwsEKMYhhr0eKCbtLGfls9krjJ6sBgACyP/Vb7hiPwxh6rDZ7ITnE
kYpXBACmWpP8NJTkamEnPCia2ZoOHODANwpUkP43I7jsDmgtobZX9qnrAXw+uNDI
QJEXM6FSbi0LLtZciNlYsafwAPEOMDKpMqAK6IyisNtPvaLd8lH0bPAnWqcyefep
rv0sxxqUEMcM3o7wwgfN83POkDasDbs3pjwPhxvhz6//62zQJ7Q7TXlTUUwgUGFj
a2FnZSBzaWduaW5nIGtleSAod3d3Lm15c3FsLmNvbSkgPGJ1aWxkQG15c3FsLmNv
bT6IXQQTEQIAHQUCPj6jDAUJCWYBgAULBwoDBAMVAwIDFgIBAheAAAoJEIxxjTtQ
cuH1cY4AnilUwTXn8MatQOiG0a/bPxrvK/gCAJ4oinSNZRYTnblChwFaazt7PF3q
zIhMBBMRAgAMBQI+PqPRBYMJZgC7AAoJEElQ4SqycpHyJOEAn1mxHijft00bKXvu
cSo/pECUmppiAJ41M9MRVj5VcdH/KN/KjRtW6tHFPYhMBBMRAgAMBQI+QoIDBYMJ
YiKJAAoJELb1zU3GuiQ/lpEAoIhpp6BozKI8p6eaabzF5MlJH58pAKCu/ROofK8J
Eg2aLos+5zEYrB/LsrkCDQQ+PqMdEAgA7+GJfxbMdY4wslPnjH9rF4N2qfWsEN/l
xaZoJYc3a6M02WCnHl6ahT2/tBK2w1QI4YFteR47gCvtgb6O1JHffOo2HfLmRDRi
Rjd1DTCHqeyX7CHhcghj/dNRlW2Z0l5QFEcmV9U0Vhp3aFfWC4Ujfs3LU+hkAWzE
7zaD5cH9J7yv/6xuZVw411x0h4UqsTcWMu0iM1BzELqX1DY7LwoPEb/O9Rkbf4fm
Le11EzIaCa4PqARXQZc4dhSinMt6K3X4BrRsKTfozBu74F47D8Ilbf5vSYHbuE5p
/1oIDznkg/p8kW+3FxuWrycciqFTcNz215yyX39LXFnlLzKUb/F5GwADBQf+Lwqq
a8CGrRfsOAJxim63CHfty5mUc5rUSnTslGYEIOCR1BeQauyPZbPDsDD9MZ1ZaSaf
anFvwFG6Llx9xkU7tzq+vKLoWkm4u5xf3vn55VjnSd1aQ9eQnUcXiL4cnBGoTbOW
I39EcyzgslzBdC++MPjcQTcA7p6JUVsP6oAB3FQWg54tuUo0Ec8bsM8b3Ev42Lmu
QT5NdKHGwHsXTPtl0klk4bQk4OajHsiy1BMahpT27jWjJlMiJc+IWJ0mghkKHt92
6s/ymfdf5HkdQ1cyvsz5tryVI3Fx78XeSYfQvuuwqp2H139pXGEkg0n6KdUOetdZ
Whe70YGNPw1yjWJT1IhMBBgRAgAMBQI+PqMdBQkJZgGAAAoJEIxxjTtQcuH17p4A
n3r1QpVC9yhnW2cSAjq+kr72GX0eAJ4295kl6NxYEuFApmr1+0uUq/SlsQ==
=YJkx
-----END PGP PUBLIC KEY BLOCK-----
你可以使用gpg --import将构建密钥导入你的个人公共GPG钥匙圈(keyring)。例如,如果你把密钥保存到mysql_pubkey.asc文件中,导入命令应为:
shell> gpg --import mysql_pubkey.asc
关于公共密钥如何工作的详细信息,请参阅GPG文档。
下载并导入公共构建密钥后,下载期望的MySQL安装软件包和相应的签名,也可以从下载页上获得。签名文件名与分发版文件相同,有 an .asc扩展名。例如:
分发文件 |
mysql-st和ard-5.1.2-alpha-linux-i686.tar.gz |
签名文件 |
mysql-st和ard-5.1.2-alpha-linux-i686.tar.gz.asc |
确保两个文件保存在同一目录下,运行下面的命令来验证分发文件的签名:
shell> gpg --verify package_name.asc
示例:
shell> gpg --verify mysql-standard-5.1.2-alpha-linux-i686.tar.gz.asc
gpg: Signature made Tue 12 Jul 2005 23:35:41 EST using DSA key ID 5072E1F5
gpg: Good signature from "MySQL Package signing key () "
Good signature消息表示所有内容都很正确。你可以忽略任何insecure memory警告。
RPM软件包没有单独的签名。RPM软件包内置GPG签名和MD5校验和。可以运行下面的命令来验证安装软件包:
shell> rpm --checksig package_name.rpm
示例:
shell> rpm --checksig MySQL-server-5.1.2-alpha-0.i386.rpm
MySQL-server-5.1.2-alpha-0.i386.rpm: md5 gpg OK
注释:如果你正使用RPM 4.1,并且出现关于(GPG) NOT OK (MISSING KEYS: GPG#5072e1f5)的抱怨,尽管你已经将MySQL公共构建密钥导入到你自己的GPG钥匙圈,你必须首先将密钥导入到RPM钥匙圈中。RPM 4.1不再使用你的个人GPG钥匙圈(或GPG本身)。RPM 4.1维护自己的钥匙圈,因为它是系统范围的应用程序,而用户GPG公共钥匙圈是具体的用户文件。要想将MySQL公共密钥导入RPM钥匙圈,要首先获得前面章节描述的密钥。然后使用rpm --import导入密钥。例如,如果你的公共密钥保存在mysql_pubkey.asc文件中,应使用下述命令导入公共密钥:
shell> rpm --import mysql_pubkey.asc
如果你需要获得MySQL公共密钥,参见2.1.4.2节,“通过GnuPG进行签名检查”。
在Windows中,MySQL 5.1的默认安装目录是C:\Program Files\MySQL\MySQL Server 5.1。(一些Windows用户宁愿安装到原来的默认安装目录 C:\mysql。然而,子目录布局仍然相同)。安装目录包括以下子目录:
目录 |
目录内容 |
bin |
客户端程序和mysqld服务器 |
data |
日志文件,数据库 |
Docs |
文档 |
examples |
示例程序和脚本 |
include |
包含(头)文件 |
lib |
库 |
scripts |
实用工具脚本 |
share |
错误消息文件 |
使用MySQL AB's Linux RPM分发进行安装后,将在以下系统目录产生文件:
目录 |
目录内容 |
/usr/bin |
客户端程序和脚本 |
/usr/sbin |
mysqld服务器 |
/var/lib/mysql |
日志文件,数据库 |
/usr/share/doc/packages |
文档 |
/usr/include/mysql |
包含(头)文件 |
/usr/lib/mysql |
库 |
/usr/share/mysql |
错误消息和字符集文件 |
/usr/share/sql-bench |
基准程序 |
在Unix中,可以在你选择的安装位置解压并安装tar文件二进制分发(typically /usr/local/mysql)并在该位置创建以下目录:
目录 |
目录内容 |
bin |
客户端程序和mysqld服务器 |
data |
日志文件,数据库 |
docs |
文档,ChangeLog |
include |
包含(头)文件 |
lib |
库 |
scripts |
mysql_install_db |
share/mysql |
错误消息文件 |
sql-bench |
基准程序 |
配置并编译完源码分发后,便开始安装。默认情况下,可以将文件安装到/usr/local,即在下面的子目录中:
目录 |
目录内容 |
bin |
客户端程序和脚本 |
include/mysql |
包含(头)文件 |
info |
Info格式的文档 |
lib/mysql |
库 |
libexec |
mysqld服务器 |
share/mysql |
错误消息文件 |
sql-bench |
基准程序和crash-me测试 |
var |
数据库和日志文件 |
在一个安装目录内,源码安装的布局在下列方面不同于二进制安装:
· mysqld服务器被安装在“libexec”目录而不是“bin”目录内。
· 数据目录是“var”而非“data”。
· mysql_install_db被安装在“bin”目录而非“scripts”内。
· 头文件和库目录是“include/mysql”和“lib/mysql”而非“include”和“lib”。
执行源码分发根目录下的scripts/make_binary_distribution脚本,你可以用编译过的源码分发版创建你自己的二进制安装。
后面几章包括如何在安装软件包格式适合的平台上平台安装MySQL。(即执行“二进制安装”)。也可以在多种平台上安装MySQL二进制分发版。关于适合所有平台的软件包的通用安装指令参见2.7节,“在其它类Unix系统中安装MySQL”。
关于二进制分发版的使用和如何获得的详细信息请参见2.1节,“一般安装问题”。
MySQL AB已经提供了Windows中安装的MySQL 3.21以上版本,并提供了每天下载MySQL的比率。本节描述在Windows中安装MySQL的过程。
使用Windows版本MySQL安装器,结合GUI配置向导,可以自动安装MySQL,创建选项文件,启动服务器并使默认用户账户安全。
如果你要升级已有的4.1.5版以前的MySQL,你必须执行以下步骤:
1. 获得并安装分发版。
2. 根据需要设置选项文件。
3. 选择想要使用的服务器。
4. 启动服务器。
5. 为初始MySQL账户指定密码。
该过程还适合安装软件包内不包括安装器的MySQL安装。
Windows版MySQL 5.1有3种分发格式:
· 二进制分发版包含一个设置程序,可以安装你需要的任何内容,因此可以立即启动服务器。
· 源码分发版包含所有使用Visual Studio 2003编译器来构建可执行程序的代码和支持文件。
一般来讲,你应当使用二进制分发版。它比其它的分发版使用起来要简单,不再需要其它工具来启动并运行MySQL。
本节描述了如何使用二进制分发版在Windows中安装MySQL。要想使用源码分发版安装,参见2.8.6节,“在Windows下从源码安装MySQL”。
要想在Windows中运行MySQL,你需要:
· 32位Windows操作系统,例如9x、Me、NT、2000、XP或Windows Server 2003。
基于Windows NT的操作系统(NT,2000,XP,2003),将MySQL服务器做为服务来运行。强烈建议使用基于Windows NT的操作系统。请参见2.3.12节,“以Windows服务方式启动MySQL”。
· TCP/IP协议支持。
· Windows版本MySQL二进制分发版,可以从http://dev.mysql.com/下载/下载。请参见2.1.3节,“怎样获得MySQL”。
注释:如果你从FTP下载分发版,我们建议使用充分的FTP客户端以保证续传,避免下载过程中文件被破坏。
· 可以读取 .zip文件的工具,以解压分发文件。
· 硬盘上有足够的空间保证根据你的需求来解包、安装和创建数据库(一般建议至少有200兆字节)。
你还可以有以下可选需求:
· 如果你计划通过ODBC连接MySQL服务器,你还需要一个连接器/ODBC驱动程序。请参见26.1节,“MySQL Connector/ODBC”。
· 如果表需要占用的空间大于4GB,则在NTFS或更新的文件系统上安装MySQL。当创建表时不要忘记使用MAX_ROWS和 AVG_ROW_LENGTH。请参见13.1.5节,“CREATE TABLE语法”。
在Windows中安装MySQL时,有3种MySQL 5.1安装软件包可供选择:
· 基本安装:该安装软件包的文件名类似于mysql-essential-5.1.2-alpha-win32.msi,包含在Windows中安装MySQL所需要的最少的文件,包括配置向导。该安装软件包不包括可选组件,例如嵌入式服务器和基准套件。
· 完全安装:该安装软件包的文件名类似于mysql-5.1.2-alpha-win32.zip,包含在Windows中安装MySQL所需要的全部文件,包括配置向导。该安装软件包包括可选组件,例如嵌入式服务器和基准套件。
· 非自动安装文件:该安装软件包的文件名类似于mysql-noinstall-5.1.2-alpha-win32.zip,包含完整安装包中的全部文件,只是不包括配置向导。该安装软件包不包括自动安装器,必须手动安装和配置。
对于大多数用户,建议选择基本安装。
你的选择会影响你后面必须遵从的安装过程。如果你选择基本安装或完全安装,参见2.3.3节,“用自动安装器安装MySQL”。如果你选择非自动安装MySQL,参见2.3.6节,“通过非安装Zip文件安装MySQL”。
基本安装和完全安装中均包括MySQL安装帮助和配置向导,建议在大多数标准MySQL安装中选择。例外情况包括想在单个服务器上安装多个实例的用户和想完全控制服务器配置的高级用户。
MySQL安装帮助是MySQL服务器的安装器,使用最新的Microsoft Window安装器技术。结合使用MySQL安装帮助和配置向导,用户安装并 配置完MySQL服务器后便可以直接使用。
MySQL安装帮助是MySQL 5.1服务器分发的标准安装器。使用MySQL安装帮助安装MySQL之前,用户需要手动关闭并卸载已经安装的以前版本的MySQL。关于对以前版本进行升级的详细信息请参见 2.3.4.7节,“升级MySQL”。
最近版本的Windows包含了改进版本的Microsoft Windows安装器(MSI)。MSI已经成为Windows 2000、Windows XP和Windows Server 2003应用程序安装的事实标准。MySQL安装帮助中使用了该技术,使安装过程更加灵活、顺利。
Microsoft Windows安装器引擎随着Windows XP的更新而更新;使用以前Windows版本的用户可以参考查阅关于升级到最新版Windows安装器引擎的资料。
此外,Microsoft最近已经引入了WiX(Windows 安装器 XML)工具包。这是Microsoft公认的开放源码项目。我们转换到WiX是因为它是一个开放源码项目,可以使用脚本更加灵活地处理整个Windows安装过程。
对MySQL装帮助的改进依赖于各用户的支持和反馈。如果你发现MySQL安装帮助缺少对你很重要的某些功能,或如果你发现某个缺陷,请使用我们的来索取功能或报告问题。
可以从http://dev.mysql.com/downloads/下载MySQL服务器安装软件包。如果你下载的安装软件包在Zip文件中,你需要先提取文件。
启动帮助的过程取决于下载的安装软件包的内容。如果有setup.exe文件,双击启动安装过程。如果有.msi文件,双击启动安装过程。
有3种安装类型:Typical(典型安装)、Complete(完全安装)和Custom(定制安装)。
Typical(典型安装)安装只安装MySQL服务器、mysql命令行客户端和命令行实用程序。命令行客户端和实用程序包括mysqldump、myisamchk和其它几个工具来帮助你管理MySQL服务器。
Complete(完全安装)安装将安装软件包内包含的所有组件。完全安装软件包包括的组件包括嵌入式服务器库、基准套件、支持脚本和文档。
Custom(定制安装)安装允许你完全控制你想要安装的软件包和安装路径。关于定制安装的详细信息请参见2.3.4.4节,“定制安装对话框”。
如果你选择Typical(典型安装)或Complete(完全安装)安装并点击 按钮,你将进入确认窗口确认选择并开始安装。如果你选择定制安装并点击 按钮,你将进入定制安装对话框,参见2.3.4.4节,“定制安装对话框”。
所有可用组件列入定制安装对话框左侧的树状视图内。未安装的组件用红色 X 图标表示;已经安装的组件有灰色图标。要想更改组件,点击该组件的图标并从下拉列表中选择新的选项。
可以点击安装路径右侧的
按钮来更改默认安装路径。选择了安装组件和安装路径后,点击
按钮进入确认对话框。选择了安装类型和可选安装组件后,则进入确认对话框。该对话框中将显示安装类型和安装路径供检查。
如果你满意设定值要想安装MySQL,点击 按钮。要想更改设定值,点击 按钮。要想退出MySQL安装帮助不再安装 MySQL,点击 按钮。
完成安装后,将出现注册选项和MySQL网址。注册后便可以访问处的MySQL论坛,可以在报告缺陷,并可以注册为时事新闻订户。在安装器的最后一个窗口内,提供了安装摘要,并提供选项以启动MySQL Configuration Wizard(配置向导),可以用来创建配置文件,安装MySQL服务并进行安全配置。
更改注册表
在典型安装中,MySQL安装帮助在HKEY_LOCAL_MACHINE\SOFTWARE\MySQL AB创建Windows注册键值。
MySQL安装帮助根据正安装的服务器的主要版本创建一个键值,例如 MySQL服务器5.1。它包含两个字符串值,Location和Version。Location字符串包含安装目录。在默认安装中,它包含C:\Program Files\MySQL\MySQL Server 5.1\。Version字符串包含发布号。例如,安装MySQL Server 5.1.2-alpha,键值包含一个5.1.2-alpha值。
这些注册键值用来帮助外部工具识别MySQL服务器的安装位置,不需要扫描整个硬盘来确定MySQL服务器的安装路径。运行服务器时不需要注册键值,使用noinstall Zip文件时不创建注册键值。
更改启动菜单
MySQL安装帮助在Windows 菜单中创建一条新的条目,使用MySQL菜单,根据安装的MySQL的主版本来命名。例如,如果安装了MySQL 5.1, MySQL安装帮助在 菜单中创建 部分。
将在新
菜单部分创建下面的条目:· :这是mysql命令行客户端的快捷方式,对其进行配置以连接为root用户。当连接时快捷方式提示输入root用户密码。
· :这是MySQL Configuration Wizard(配置向导)的快捷方式。使用该快捷方式来配置新安装的服务器,或重新配置已有的服务器。
· :可以连接到保存在MySQL服务器安装目录下的文档。采用基本安装方式安装MySQL服务器时,该选项不可用。
更改文件系统
默认情况下,MySQL安装帮助将MySQL 5.1服务器安装到C:\Program Files\MySQL\MySQL Server 5.1,其中Program Files是系统应用程序的默认位置,5.1是MySQL服务器的主要版本。这是建议的MySQL服务器的新安装位置,替换了前面的默认位置c:\mysql。
默认情况下,所有MySQL应用程序保存到目录C:\Program Files\MySQL下,其中Program Files是应用程序在Windows中的默认安装位置。开发机器上的典型MySQL安装应为:
C:\Program Files\MySQL\MySQL Server 5.1
C:\Program Files\MySQL\MySQL Administrator 1.0
C:\Program Files\MySQL\MySQL Query Browser 1.0
该方法使管理和维护具体系统上安装的MySQL应用程序更加容易。
使用MSI的升级功能,MySQL安装帮助可以自动执行服务器升级。这意味着安装新版本前,不需要手动卸载前面安装的程序。安装新版本前,安装器自动关闭并卸载前面安装的MySQL服务。
只有在主版本号和次要版本号相同的安装之间进行升级时,才能自动进行升级。例如,可以自动从MySQL 4.1.5升级到MySQL 4.1.6,但是不能从MySQL 5.0升级到MySQL 5.1。
MySQL Configuration Wizard(配置向导)包含在MySQL 5.1服务器中,目前只适用于Windows用户。
MySQL Configuration Wizard(配置向导)在很大程度上是MySQL AB经过多年从许多用户收到的反馈的结果。然而,如果你发现它缺少某些对你很重要的功能,或如果你发现一个缺陷,请使用我们的来索取功能或报告问题。
并且,还可以进入MySQL安装bin目录直接启动MySQLInstanceConfig.exe文件。
要想重新配置已有的服务器,选择my.ini文件重新命名为mytimestamp.ini.bak,其中timestamp是my.ini文件创建是的日期和时间。要想卸载已有的服务器实例,选择 选项并点击 按钮。
选项并点击 按钮。已有的如果选择了MySQL Configuration Wizard(配置向导)停止并卸载MySQL服务,然后删除my.ini文件。服务器安装和自己的data文件夹不删除。
选项,则进入确认窗口。点击 按钮:如果选择了
选项,则进入配置 对话框,可以选择你想要配置的安装类型。当启动MySQL Configuration Wizard(配置向导)重新安装MySQL,或为已有安装选择 选项,则进入配置 对话框。
可以选择两种配置类型:MySQL而不必考虑服务器配置的新用户。 选项适合想要更加细粒度控制服务器配置的高级用户。
和 。 选项适合想要快速启动如果你是MySQL的新手,需要配置为单用户开发机的服务器, 应当适合你的需求。选择 选项,则 MySQL Configuration Wizard(配置向导)自动设置所有配置选项,但不包括 和安全 。
MySQL的系统不兼容。如果系统上已经安装了MySQL和你想要配置的安装,建议选择 。
设置选项可能与安装 ,请分别参阅· :该选项代表典型个人用桌面工作站。假定机器上运行着多个桌面应用程序。将MySQL服务器配置成使用最少的系统资源。
· :该选项代表服务器,MySQL服务器可以同其它应用程序一起运行,例如FTP、email和web服务器。MySQL服务器配置成使用适当比例的系统资源。
· :该选项代表只运行MySQL服务的服务器。假定运行没有运行其它应用程序。MySQL服务器配置成使用所有可用系统资源。
· :选择该选项,则同时使用InnoDB和MyISAM储存引擎,并在两个引擎之间平均分配资源。建议经常使用两个储存引擎的用户选择该选项。
· :该选项同时使用InnoDB和MyISAM 储存引擎,但是将大多数服务器资源指派给InnoDB储存引擎。建议主要使用InnoDB只偶尔使用MyISAM的用户选择该选项。
· :该选项完全禁用InnoDB储存引擎,将所有服务器资源指派给MyISAM储存引擎。建议不使用InnoDB的用户选择该选项。
要想更改InnoDB表空间文件的默认位置,从驱动器下拉列表选择一个新的驱动器,并从路径下拉列表选择新的路径。要想创建路径,点击 按钮。
如果你要更改已有服务器的配置,更改路径前你必须点击
按钮。此时启动服务器之前,你必须将已有表空间文件移到新位置。· :如果服务器不需要大量的并行连接可以选择该选项。假定最大连接数目设置为100,平均并行连接数为20。
· :如果你的服务器需要大量的并行连接则选择该选项。最大连接数设置为500。
· :选择该选项可以手动设置服务器并行连接的最大数目。从前面的下拉框中选择并行连接的数目,如果你期望的数目不在列表中,则在下拉框中输入最大连接数。
默认情况启用TCP/IP网络。要想禁用TCP/IP网络,取消选择 选项旁边的检查框。
默认使用3306端口。要想更访问MySQL使用的端口,从下拉框选择一个新端口号或直接向下拉框输入新的端口号。如果你选择的端口号已经被占用,将提示确认选择的端口号。
· :如果想要使用Latin1做为默认服务器字符集,则选择该选项。Latin1用于英语和许多西欧语言。
· :如果想要使用UTF8做为默认服务器字符集,则选择该选项。UTF8可以 将不同语言的字符储存为单一的字符集。
· ( :如果想要手动选择服务器的默认字符集,请选择该项。从下拉列表中选择期望的字符集。
在基于Windows NT的平台上,可以将MySQL服务器安装成服务。安装成服务,系统启动时可以自动启动MySQL服务器,甚至出现服务故障时可以随Windows自动启动。
默认情况,MySQL Configuration Wizard(配置向导)将MySQL服务器安装为服务,服务名为MySQL。如果你不想安装服务,取消选项旁边的选择框。可以从下拉框选择新的服务名或在下拉框输入新的服务名来更改服务名。
要想将MySQL服务器安装为服务,但是不自动启动,不选中 选项旁边的检查框。
强烈建议为你的MySQL服务器设置一个root密码,默认情况MySQL Configuration Wizard(配置向导)要求你设置一个root密码。如果你不想设置root密码,不选中 选项旁边的选择框。
要想设置root密码,在 和 两个框内输入期望的密码。如果重新配置已有的服务器,你还需要 框内输入已有的root密码。
要想防止通过网络以root登录,选中 选项旁边的框。这样可以提高root账户的安全。
要想创建一个匿名用户账户,选中
选项旁边的框。创建匿名账户会降低服务器的安全,并造成登录和许可困难。因此不建议。点击MySQL Configuration Wizard(配置向导)执行一系列的任务,执行过程将显示在屏幕上。
按钮后,MySQL Configuration Wizard(配置向导)首先使用MySQL AB开发人员和工程师准备的模板根据你的选择确定配置文件选项。该模板的名称为my-template.ini,位于服务器安装目录中。
MySQL Configuration Wizard(配置向导)将这些选项写入到一个my.ini文件中。my.ini文件的最终位置显示在写配置文件任务的旁边。
如果选择为MySQL服务器创建一个服务,MySQL Configuration Wizard(配置向导)则创建并启动服务。如果你重新配置已有的服务,MySQL Configuration Wizard(配置向导)则根据你的配置更改重新启动服务。
如果选择设置root密码,MySQL Configuration Wizard(配置向导)则连接服务器,设置新root密码并应用你选择的其它安全设定值。
MySQL Configuration Wizard(配置向导)完成任务后,则显示一个概要。点击 按钮退出MySQL Configuration Wizard(配置向导)。
要想确保MySQL服务器知道从哪里查找my.ini文件,即做为服务安装的一部分传递给MySQL服务器的部分:--defaults-file="C:\Program Files\MySQL\MySQL Server 5.1\my.ini",其中C:\Program Files\MySQL\MySQL Server 5.1 被MySQL服务器的安装路径替代。
--defaults-file指导MySQL服务器读取具体的配置文件。
MySQL客户端和实用程序,例如mysql命令行客户端和mysqldump不能将my.ini文件放到服务器安装目录中。要想配置客户端和实用工具,根据Windows 版本,在C:\Windows或C:\WINNT目录下创建一个新的my.ini文件。
想使用非自动安装包的用户可以使用本节的指令手动安装MySQL。从Zip文档安装MySQL的过程为:
1. 将文档提取到期望的安装目录中。
2. 创建一个选项文件。
3. 选择MySQL服务器类型。
4. 启动MySQL服务器。
5. 使默认用户账户安全。
下面一节描述了该过程。
要想手动安装MySQL,其步骤为:
1. 如果你从以前的版本升级,开始升级过程前请参阅2.3.15节,“在Windows下升级MySQL”。
2. 如果你使用基于Windows NT的操作系统,例如Windows NT、Windows 2000、Windows XP或Windows Server 2003,确保登录的用户名具有管理员权限。
3. 选择安装位置。传统安装中MySQL服务器安装到C:\mysql,MySQL Installation Wizard(安装帮助)将MySQL安装到C:\Program Files\MySQL。如果你不想将MySQL安装到C:\mysql,你必须在启动过程或在选项文件中指定安装目录的路径。请参见2.3.8节,“创建选项文件”。
4. 使用zip文件工具,将安装文件提取到选定的安装位置。使用某些工具,可以将文档提取到选择的安装位置的文件夹中。在这种情况下,你可以将子文件夹中的内容移动到选择的安装位置。
· 安装或数据目录位置不是默认位置(C:\Program Files\MySQL\MySQL Server 5.1和C:\Program Files\MySQL\MySQL Server 5.1\data)。
· 需要调节服务器设定值。
档MySQL服务器在Windows中启动时,它从两个文件中寻找选项:Windows目录中的my.ini文件和C:\my.cnf 文件。Windows目录典型名称为C:\WINDOWS或C:\WINNT。可以使用下面的命令从WINDIR环境变量值确定自己的确切位置:
C:\> echo %WINDIR%
MySQL首先从my.ini文件中寻找选项,然后从my.cnf文件中寻找。为了避免混淆,最好只使用一个文件。如果你的PC使用了一个引导加载器,其中C:不是引导盘,唯一的选则是使用my.ini文件。不管你使用哪个选项文件,必须为纯文本文件。
还可以使用MySQL分发中的示例选项文件。在安装目录中查找以下文件:my-small.cnf、my-medium.cnf、my-large.cnf和my-huge.cnf,你可以重新命名并复制到相应位置用作基本配置文件。
可以用任何文本编辑器来创建并修改选项文件,例如记事本。例如,如果MySQL安装在E:\mysql,数据目录安装在E:\mydata\data,你可以 创建含有[mysqld]部分的选项文件,指定basedir和datadir参数的值:
[mysqld]
# set basedir to your installation path
basedir=E:/mysql
# set datadir to the location of your data directory
datadir=E:/mydata/data
请注意在选项文件中使用正斜线儿不是反斜线指定Windows路径名。如果使用反斜线,必须用双反斜线:
[mysqld]
# set basedir to your installation path
basedir=E:\\mysql
# set datadir to the location of your data directory
datadir=E:\\mydata\\data
在Windows下,MySQL安装器将数据目录直接放到安装MySQL的目录下。如果你想要使用其它位置的数据目录,应当将data目录中的全部内容复制到新的目录下。例如,如果MySQL安装到C:\Program Files\MySQL\MySQL Server 5.1中,数据目录默认在C:\Program Files\MySQL\MySQL Server 5.1\data。如果想要使用E:\mydata做为数据目录,你必须做两件事情:
1. 将整个data目录和全部内容从C:\Program Files\MySQL\MySQL Server 5.1\data移动到E:\mydata。
2. 每次启动服务器时,使用--datadir选项来指定新的数据目录。
下面的表显示了Windows下可用的MySQL 5.1服务器:
二进制 |
描述 |
mysqld- debug |
已经编译过,可以进行完全调试和自动内存分配检查,用于表InnoDB和BDB。 |
mysqld |
优化的二进制,支持InnoDB。 |
mysqld-nt |
优化的二进制,支持Windows NT,2000 XP,有命名管道。 |
mysqld-max |
优化的二进制,支持InnoDB和BDB表。 |
mysqld-max-nt |
同mysqld-max,但是已经编译过,支持命名管道。 |
已经对所有前面的二进制进行了优化以适用现代Intel处理器,但是应当工作在Intel i386-类或更高的处理器上。
所有Windows MySQL 5.1服务器支持数据库目录符号链接。
MySQL支持所有Windows平台的TCP/IP。mysqld-nt和mysql-max-nt服务器支持Windows NT、2000、XP和2003的命名管道。然而,在所有平台下默认使用TCP/IP。(在许多Windows配置中,命名管道比TCP/IP慢)。
命名管道在以下条件下使用:
· 如果使用--enable-named-pipe选项启动服务器,则启用了命名管道。需要明确使用该选项,因为当使用命名管道关闭MySQL服务器时,某些用户会遇到问题。
· 只有mysqld-nt或mysqld-max-nt服务器,并且服务器运行在支持命名管道的Windows版本(NT、2000、XP、2003),才能够使用命名管道连接。
· 这些服务器可以运行在Windows 98 或Me中,但是必须安装TCP/IP协议;此时不可以使用命名管道连接。
· 这些服务器不能在Windows 95中运行。
注释:参考手册中的大多数例子使用mysqld做为服务器名。如果你选择使用不同的服务器,例如mysqld-nt,则在相应例子中的命令中进行相应的替换。