(mysql.info) which-os
Info Catalog
(mysql.info) general-installation-issues
(mysql.info) general-installation-issues
(mysql.info) which-version
2.1.1 Operating Systems Supported by MySQL
------------------------------------------
This section lists the operating systems on which you can expect to be
able to run MySQL.
We use GNU Autoconf, so it is possible to port MySQL to all modern
systems that have a C++ compiler and a working implementation of POSIX
threads. (Thread support is needed for the server. To compile only the
client code, the only requirement is a C++ compiler.) We use and
develop the software ourselves primarily on Linux (SuSE and Red Hat),
FreeBSD, and Sun Solaris (versions 8 and 9).
MySQL has been reported to compile successfully on the following
combinations of operating system and thread package. Note that for many
operating systems, native thread support works only in the latest
versions.
* AIX 4.x, 5.x with native threads. See ibm-aix.
* Amiga.
* BSDI 2.x with the MIT-pthreads package. See bsdi.
* BSDI 3.0, 3.1 and 4.x with native threads. See bsdi.
* Digital Unix 4.x with native threads. See alpha-dec-unix.
* FreeBSD 2.x with the MIT-pthreads package. See freebsd.
* FreeBSD 3.x and 4.x with native threads. See freebsd.
* FreeBSD 4.x with LinuxThreads. See freebsd.
* HP-UX 10.20 with the DCE threads or the MIT-pthreads package. See
hp-ux-10-20.
* HP-UX 11.x with the native threads. See hp-ux-11-x.
* Linux 2.0+ with LinuxThreads 0.7.1+ or `glibc' 2.0.7+ for various
CPU architectures. See linux.
* Mac OS X. See mac-os-x.
* NetBSD 1.3/1.4 Intel and NetBSD 1.3 Alpha (requires GNU make). See
netbsd.
* Novell NetWare 6.0 and 6.5. See netware-installation.
* OpenBSD 2.5 and with native threads. OpenBSD earlier than 2.5 with
the MIT-pthreads package. See openbsd.
* OS/2 Warp 3, FixPack 29 and OS/2 Warp 4, FixPack 4. See
os-2.
* SCO OpenServer 5.0.X with a recent port of the FSU Pthreads
package. See sco.
* SCO Openserver 6.0.x. See sco-openserver.
* SCO UnixWare 7.1.x. See sco-unixware.
* SGI Irix 6.x with native threads. See sgi-irix.
* Solaris 2.5 and above with native threads on SPARC and x86. See
solaris.
* SunOS 4.x with the MIT-pthreads package. See solaris.
* Tru64 Unix. See alpha-dec-unix.
* Windows 9x, Me, NT, 2000, XP, and Windows Server 2003. See
windows-installation.
Not all platforms are equally well-suited for running MySQL. How well a
certain platform is suited for a high-load mission-critical MySQL
server is determined by the following factors:
* General stability of the thread library. A platform may have an
excellent reputation otherwise, but MySQL is only as stable as the
thread library it calls, even if everything else is perfect.
* The capability of the kernel and the thread library to take
advantage of symmetric multi-processor (SMP) systems. In other
words, when a process creates a thread, it should be possible for
that thread to run on a CPU different from the original process.
* The capability of the kernel and the thread library to run many
threads that acquire and release a mutex over a short critical
region frequently without excessive context switches. If the
implementation of `pthread_mutex_lock()' is too anxious to yield
CPU time, this hurts MySQL tremendously. If this issue is not
taken care of, adding extra CPUs actually makes MySQL slower.
* General filesystem stability and performance.
* If your tables are large, performance is affected by the ability
of the filesystem to deal with large files at all and to deal with
them efficiently.
* Our level of expertise here at MySQL AB with the platform. If we
know a platform well, we enable platform-specific optimizations
and fixes at compile time. We can also provide advice on
configuring your system optimally for MySQL.
* The amount of testing we have done internally for similar
configurations.
* The number of users that have run MySQL successfully on the
platform in similar configurations. If this number is high, the
likelihood of encountering platform-specific surprises is much
smaller.
Based on the preceding criteria, the best platforms for running MySQL
at this point are x86 with SuSE Linux using a 2.4 or 2.6 kernel, and
ReiserFS (or any similar Linux distribution) and SPARC with Solaris
(2.7-9). FreeBSD comes third, but we really hope it joins the top club
once the thread library is improved. We also hope that at some point
we are able to include into the top category all other platforms on
which MySQL currently compiles and runs, but not quite with the same
level of stability and performance. This requires some effort on our
part in cooperation with the developers of the operating systems and
library components that MySQL depends on. If you are interested in
improving one of those components, are in a position to influence its
development, and need more detailed instructions on what MySQL needs to
run better, send an email message to the MySQL `internals' mailing
list. See mailing-lists.
Please note that the purpose of the preceding comparison is not to say
that one operating system is better or worse than another in general.
We are talking only about choosing an OS for the specific purpose of
running MySQL. With this in mind, the result of this comparison might
be different if other factors were considered. In some cases, the
reason one OS is better for MySQL than another might simply be that we
have been able to put more effort into testing and optimizing for a
particular platform. We are just stating our observations to help you
decide which platform to use for running MySQL.
Info Catalog
(mysql.info) general-installation-issues
(mysql.info) general-installation-issues
(mysql.info) which-version
automatically generated byinfo2html