锐单电子商城 , 一站式电子元器件采购平台!
  • 电话:400-990-0325

2. 安装MySQL

时间:2023-02-16 22:00:01 系列17p连接器

1. 了解支持哪些平台。请注意并非所有支持的平台同等适合运行MySQL。一些平台比其他平台更有效、更稳定。2.1.1节,“MySQL支持的操作系统 。

2. 确定你应该使用的分发版本。可获得MySQL大多数版本都有各种分发版本。您可以选择以二进制(预编译)代码或源代码的形式进行预包装和分发。如果不确定,则使用二进制分发版本。对于那些想要查看我们的最新开发并帮助我们测试新代码的用户,我们提供了一个公共访问接口,可以访问我们最新的源代码树。请参见您应该使用的分发版本和类型2.1.2节,选择要安装的MySQL分发版”。

3. 下载您想要安装的分发版本。能从中获得MySQL请参见网站列表2.1.三节,如何获得?MySQL。参见验证分发版完整性的指令2.1.4节,“通过MD5校验和或GnuPG验证软件包的完整性”。

4. 安装分发版。二进制代码和源码分发版的安装说明2.2节,使用二进制分发版的标准MySQL安装说明。二进制代码和源码分发版的安装说明2.8节,用源码分发版安装MySQL”中讲述。

如果你想使用当前版本MySQL升级到最新版本,而不是第一次安装MySQL,请参考升级过程和升级前应考虑的问题2.10节,“升级MySQL”。

如遇安装问题,2.解决平台相关问题的信息在具体操作系统相关注意事项中提供。

5. 安装后的设置。安装MySQL后,请阅读2.9节,安装后的设置和测试。本节介绍重要信息,确保MySQL服务器工作正确。本节还描述了如何使没有密码的初始工作MySQL用户账户的安全性。无论您是使用二进制代码还是源代码分发版本安装MySQL,所有这些过程都适用。

如果要运行MySQL基准脚本必须使用支持MySQL的Perl。请参见 2.13节,“Perl安装注意事项。
2.1.1. MySQL支持的操作系统 2.1.2. 选择要安装的MySQL分发版 2.1.3. 怎样获得MySQL 2.1.4. 通过MD5校验和或GnuPG验证软件包的完整性 2.1.5. 安装布局

在安装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如何能运行得更好的说明,请向我们的MySQLinternals发送邮件。请参见1.7.1.1节,“The MySQL邮件列表”。

请注意前面的对比并不是说一个操作系统总体上比另一个操作系统要好。我们只是讨论选择一个OS来专门运行MySQL。记住了这一点,如果考虑更多的因素,对比结果可能会不同。在某些情况下,一个OS比另一个OS好的原因只是我们已经为具体平台做出了更多的努力来进行测试和优化。我们只是陈述我们的观点帮助你选择运行MySQL的平台。

2.1.2.1. 选择要安装的MySQL版本 2.1.2.2. 选择分发格式 2.1.2.3. 如何发布更新以及何时发布更新 2.1.2.4. 发布原则:发行版本中没有已知的缺陷 2.1.2.5. MySQL AB编译的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版本变得不稳定。在某些情况,这意味着我们可以在开发版本中修复问题,而不是在稳定的 (产品)版本。自然,我们会将这些问题记入文档,以便用户能知道。

下面描述了我们如何操作:

·         我们通过我们的客户支持列表、在http://bugs.mysql.com/缺陷数据库和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发布。每天构建源码快照,可以从http://downloads.mysql.com/snapshots.php获得。

·         如果,尽管经过我们最大的努力,我们在发布后仍收到缺陷报告,即在某个具体平台上出现严重问题,我们将立即进行修复,并为该平台构建一个新的'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来查看这些信息。

2.1.4.1. 验证MD5校验和 2.1.4.2. 通过GnuPG进行签名检查 2.1.4.3. 使用RPM进行签名检查

相关文章