Building MySQL from the source code enables you to customize build parameters, compiler optimizations, and installation location. For a list of systems on which MySQL is known to run, see Section 2.1.1, “Operating Systems Supported by MySQL Community Server”.
Before you proceed with an installation from source, check whether Oracle produces a precompiled binary distribution for your platform and whether it works for you. We put a great deal of effort into ensuring that our binaries are built with the best possible options for optimal performance. Instructions for installing binary distributions are available in Section 2.2, “Installing MySQL from Generic Binaries on Unix/Linux”.
This section describes how to build MySQL from source using CMake. Before MySQL 5.5, source builds used the GNU autotools on Unix-like systems. Source builds on Windows used CMake, but the process was different from that described here. For source-building instructions for older versions of MySQL, see Installing MySQL from Source, in the MySQL 5.1 Reference Manual. If you are familiar with autotools but not CMake, you might find this transition document helpful: http://forge.mysql.com/wiki/Autotools_to_CMake_Transition_Guide
Source Installation Methods
There are two methods for installing MySQL from source:
Use a standard MySQL source distribution. To obtain a standard distribution, see Section 2.1.3, “How to Get MySQL”. For instructions on building from a standard distribution, see Section 2.11.2, “Installing MySQL from a Standard Source Distribution”.
Standard distributions are available as compressed tar files, Zip archives, or RPM packages. Distribution files have names of the form
mysql-
,VERSION
.tar.gzmysql-
, orVERSION
.zipmysql-
, whereVERSION
.rpmVERSION
is a number like5.5.9
. File names for source distributions can be distinguished from those for precompiled binary distributions in that source distribution names are generic and include no platform name, whereas binary distribution names include a platform name indicating the type of system for which the distribution is intended (for example,pc-linux-i686
orwinx64
).Use a MySQL development tree. Development trees have not necessarily received the same level of testing as standard release distributions, so this installation method is usually required only if you need the most recent code changes. For information on building from one of the development trees, see Section 2.11.3, “Installing MySQL from a Development Source Tree”.
Source Installation System Requirements
Installation of MySQL from source requires several development tools. Some of these tools are needed no matter whether you use a standard source distribution or a development source tree. Other tool requirements depend on which installation method you use.
To install MySQL from source, your system must have the following tools, regardless of installation method:
CMake, which is used as the build framework on all platforms. CMake can be downloaded from http://www.cmake.org.
A good make program. Although some platforms come with their own make implementations, it is highly recommended that you use GNU make 3.75 or newer. It may already be available on your system as gmake. GNU make is available from http://www.gnu.org/software/make/.
A working ANSI C++ compiler. GCC 3.2 or later, Sun Studio 10 or later, Visual Studio 2008 or later, and many current vendor-supplied compilers are known to work.
Perl is needed if you intend to run test scripts. Most Unix-like systems include Perl. On Windows, you can use a version such as ActiveState Perl.
To install MySQL from a standard source distribution, one of the following tools is required to unpack the distribution file:
For a
.tar.gz
compressed tar file: GNUgunzip
to uncompress the distribution and a reasonable tar to unpack it. If your tar program supports thez
option, it can both uncompress and unpack the file.GNU tar is known to work. The standard tar provided with some operating systems is not able to unpack the long file names in the MySQL distribution. You should download and install GNU tar, or if available, use a preinstalled version of GNU tar. Usually this is available as gnutar, gtar, or as tar within a GNU or Free Software directory, such as
/usr/sfw/bin
or/usr/local/bin
. GNU tar is available from http://www.gnu.org/software/tar/.For a
.zip
Zip archive: WinZip or another tool that can read.zip
files.For an
.rpm
RPM package: The rpmbuild program used to build the distribution unpacks it.
To install MySQL from a development source tree, the following additional tools are required:
To obtain the source tree, you must have Bazaar installed. The Bazaar VCS Web site has instructions for downloading and installing Bazaar on different platforms. Bazaar is supported on any platform that supports Python, and is therefore compatible with any Linux, Unix, Windows, or Mac OS X host.
bison is needed to generate
sql_yacc.cc
fromsql_yacc.yy
You should use the latest version of bison where possible. Versions 1.75 and 2.1 are known to work. There have been reported problems with bison 1.875. If you experience problems, upgrade to a later, rather than earlier, version.bison is available from http://www.gnu.org/software/bison/.
bison
for Windows can be downloaded from http://gnuwin32.sourceforge.net/packages/bison.htm. Download the package labeled “Complete package, excluding sources”. On Windows, the default location for bison is theC:\Program Files\GnuWin32
directory. Some utilities may fail to find bison because of the space in the directory name. Also, Visual Studio may simply hang if there are spaces in the path. You can resolve these problems by installing into a directory that does not contain a space; for exampleC:\GnuWin32
.On OpenSolaris and Solaris Express, m4 must be installed in addition to bison. m4 is available from http://www.gnu.org/software/m4/.
If you have to install any programs, modify your
PATH
environment variable to include any
directories in which the programs are located. See
Section 4.2.4, “Setting Environment Variables”.
If you run into problems and need to file a bug report, please use the instructions in Section 1.7, “How to Report Bugs or Problems”.