Appendix E. Porting to Other Systems
This appendix helps you port MySQL to other operating systems. Do
check the list of currently supported operating systems first. See
Section 2.1.1, “Operating Systems Supported by MySQL”. If you have created a new port of MySQL,
please let us know so that we can list it here and on our Web site
(http://www.mysql.com/), recommending it to other
Note: If you create a new port of MySQL, you are free to copy and
distribute it under the GPL license, but it does not make you a
copyright holder of MySQL.
A working POSIX thread library is needed for the server. On Solaris
2.5 we use Sun PThreads (the native thread support in 2.4 and
earlier versions is not good enough), on Linux we use LinuxThreads
by Xavier Leroy,
The hard part of porting to a new Unix variant without good native
thread support is probably to port MIT-pthreads. See
mit-pthreads/README and Programming POSIX
Up to MySQL 4.0.2, the MySQL distribution included a patched version
of Chris Provenzano's Pthreads from MIT (see the MIT Pthreads Web
page at http://www.mit.edu/afs/sipb/project/pthreads/
and a programming introduction at
These can be used for some operating systems that do not have POSIX
threads. See Section 2.8.5, “MIT-pthreads Notes”.
It is also possible to use another user level thread package named
FSU Pthreads (see
implementation is being used for the SCO port.
thr_alarm.c programs in the
mysys directory for some tests/examples of
Both the server and the client need a working C++ compiler. We use
gcc on many platforms. Other compilers that are
known to work are SPARCworks, Sun Forte, Irix cc,
HP-UX aCC, IBM AIX xlC_r),
Intel ecc/icc and Compaq cxx).
To compile only the client use ./configure
There is currently no support for only compiling the server, nor is
it likely to be added unless someone has a good reason for it.
If you want/need to change any
Makefile or the
configure script you also need GNU Automake and Autoconf. See
Section 2.8.3, “Installing from the Development Source Tree”.
All steps needed to remake everything from the most basic files.
/bin/rm -f config.cache
./configure --with-debug=full --prefix='your installation directory'
# The makefiles generated above need GNU make 3.75 or newer.
# (called gmake below)
gmake clean all install init-db
If you run into problems with a new port, you may have to do some
debugging of MySQL! See Section E.1, “Debugging a MySQL Server”.
Note: Before you start debugging
mysqld, first get the test programs
mysys/thr_lock to work. This ensures that your
thread installation has even a remote chance to work!