2.1.1. MySQL支持的操作系统

本节列出了可以运行MySQL的操作系统。

我们使用GNU Autoconf,因此将MySQL移植到所有使用Posix线程和C++编译器的现代系统是可能的。(要求服务器支持线程。如果只是编译客户端代码,则只需要C++编译器)。我们主要在Linux(SuSERed Hat)FreeBSDSun Solaris(版本89)上使用并开发本软件。

已经报告MySQL可以在下列操作系统/线程包的组合上成功地进行编译。注意,对于很多操作系统,原生的线程仅支持最新的版本。

·         有原生线程的AIX 4.x5.x。请参见2.12.5.3节,“IBM-AIX注意事项”

·         Amiga

·         包括MIT-pthreads包的BSDI 2.x。请参见2.12.4.4节,“BSD/OS 2.x版注意事项”

·         有原生线程的BSDI3.0,3.14.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.x4.x。请参见2.12.4.1节,“FreeBSD注意事项”

·         LinuxThreadsFreeBSD 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+,适合各种CPULinux 2.0+。请参见2.12.1节,“Linux注意事项”

·         Mac OS X。请参见2.12.2节,“Mac OS X注意事项”

·         NetBSD 1.3/1.4 IntelNetBSD 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 29OS/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注意事项”

·         SPARCx86上有原生线程的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 9xMeNT2000XP2003。请参见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.42.6内核,和ReiserFS(或类似Linux分发版)和安装了 Solaris(2.7-9)SPARCFreeBSD排第三位,但我们真正希望一旦线程库得到改进,它也可以提高排名。从某一观点我们还希望提高其它MySQL目前正在上面编译、允许的平台的排名,但稳定性和性能上可以要求不同等级。这需要我们与MySQL所依赖的操作系统和库组件开发人员共同努力。如果你对改进某个组件感兴趣,可能影响其开发,需要更多的关于MySQL如何能运行得更好的说明,请向我们的MySQL internals发送邮件。请参见1.7.1.1节,“The MySQL邮件列表”

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

关注编程学问公众号