GNU Info

Info Node: (mysql.info)Which OS

(mysql.info)Which OS


Next: Which version Prev: Getting MySQL Up: General Installation Issues
Enter node , (file) or (file)node

Operating Systems Supported by MySQL
------------------------------------

We use GNU Autoconf, so it is possible to port MySQL to all modern
systems with working Posix threads and a C++ compiler.  (To compile
only the client code, a C++ compiler is required but not threads.)  We
use and develop the software ourselves primarily on Sun Solaris
(Versions 2.5 - 2.7) and SuSE Linux Version 7.x.

Note that for many operating systems, the native thread support works
only in the latest versions. MySQL has been reported to compile
successfully on the following operating system/thread package
combinations:

   * AIX 4.x with native threads.  Note: IBM-AIX.

   * Amiga.

   * BSDI 2.x with the included MIT-pthreads package.  Note: BSDI.

   * BSDI 3.0, 3.1 and 4.x with native threads.  Note: BSDI.

   * DEC Unix 4.x with native threads.  Note: Alpha-DEC-UNIX.

   * FreeBSD 2.x with the included MIT-pthreads package.  Note:
     FreeBSD.

   * FreeBSD 3.x and 4.x with native threads.  Note: FreeBSD.

   * HP-UX 10.20 with the included MIT-pthreads package.  *Note HP-UX
     10.20::.

   * HP-UX 11.x with the native threads.  *Note HP-UX 11.x::.

   * Linux 2.0+ with LinuxThreads 0.7.1+ or `glibc' 2.0.7+.  Note:
     Linux.

   * Mac OS X Server.  Note: Mac OS X.

   * NetBSD 1.3/1.4 Intel and NetBSD 1.3 Alpha (Requires GNU make).
     Note: NetBSD.

   * OpenBSD > 2.5 with native therads. OpenBSD < 2.5 with the included
     MIT-pthreads package.  Note: OpenBSD.

   * OS/2 Warp 3, FixPack 29 and OS/2 Warp 4, FixPack 4.  Note: OS/2.

   * SGI Irix 6.x with native threads.  Note: SGI-Irix.

   * Solaris 2.5 and above with native threads on SPARC and x86.  Note:
     Solaris.

   * SunOS 4.x with the included MIT-pthreads package.  Note: Solaris.

   * SCO OpenServer with a recent port of the FSU Pthreads package.
     Note: SCO.

   * SCO UnixWare 7.0.1.  Note: SCO Unixware.

   * Tru64 Unix

   * Win95, Win98, NT, and Win2000.  Note: Windows.

Note that not all platforms are suited equally well 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
     excellent reputation otherwise, but if the thread library is
     unstable in the code that is called by MySQL, even if everything
     else is perfect, MySQL will be only as stable as the thread
     library.

   * The ability of the kernel and/or thread library to take advantage
     of *SMP* on multi-processor systems. In other words, when a process
     creates a thread, it should be possible for that thread to run on
     a different CPU than the original process.

   * The ability of the kernel and/or the thread library to run many
     threads which acquire/release a mutex over a short critical region
     frequently without excessive context switches. In other words, if
     the implementation of `pthread_mutex_lock()' is too anxious to
     yield CPU, this will hurt MySQL tremendously. If this issue is not
     taken care of, adding extra CPUs will actually make MySQL slower.

   * General file system stability/performance.

   * Ability of the file system to deal with large files at all and
     deal with them efficiently, if your tables are big.

   * Our level of expertise here at MySQL AB with the platform. If we
     know a platform well, we introduce platform-specific
     optimizations/fixes enabled at compile time. We can also provide
     advice on configuring your system optimally for MySQL.

   * The amount of testing of similar configurations we have done
     internally.

   * The number of users that have successfully run MySQL on that
     platform in similar configurations. If this number is high, the
     chances of hitting some platform-specific surprise are much
     smaller.

Based on the above criteria, the best platforms for running MySQL at
this point are x86 with SuSE Linux 7.1, 2.4 kernel and ReiserFS (or any
similar Linux distribution) and Sparc with Solaris 2.7 or 2.8. FreeBSD
comes third, but we really hope it will join the top club once the
thread library is improved. We also hope that at some point we will be
able to include all other platforms on which MySQL compiles, runs ok,
but not quite with the same level of stability and performance, into
the top category. This will require some effort on our part in
cooperation with the developers of the OS/library components MySQL
depends upon. If you are interested in making one of those components
better, are in a position to influence their development, and need more
detailed instructions on what MySQL needs to run better, send an e-mail
to <internals@lists.mysql.com>.

Please note that the comparison above is not to say that one OS is
better or worse than the other in general. We are talking about
choosing a particular OS for a dedicated purpose - running MySQL, and
compare platforms in that regard only. With this in mind, the result of
this comparison would be different if we included more issues into it.
And in some cases, the reason one OS is better than the other could
simply be that we have put forth more effort into testing on and
optimizing for that particular platform.  We are just stating our
observations to help you make a decision on which platform to use MySQL
on in your setup.


automatically generated by info2www version 1.2.2.9