To install MySQL from a standard source distribution:
Verify that your system satisfies the tool requirements listed at Chapter 1, Installing MySQL from Source.
Obtain a distribution file using the instructions in How to Get MySQL.
Configure, build, and install the distribution using the instructions in this section.
Perform postinstallation procedures using the instructions in Postinstallation Setup and Testing.
In MySQL 5.7, CMake is used as the build framework on all platforms. The instructions given here should enable you to produce a working installation. For additional information on using CMake to build MySQL, see How to Build MySQL Server with CMake.
If you start from a source RPM, use the following command to make a binary RPM that you can install. If you do not have rpmbuild, use rpm instead.
rpmbuild --rebuild --clean MySQL-
The result is one or more binary RPM packages that you install as indicated in Installing MySQL on Linux Using RPM Packages from Oracle.
The sequence for installation from a compressed tar file or Zip archive source distribution is similar to the process for installing from a generic binary distribution (see Installing MySQL on Unix/Linux Using Generic Binaries), except that it is used on all platforms and includes steps to configure and compile the distribution. For example, with a compressed tar file source distribution on Unix, the basic installation command sequence looks like this:
# Preconfiguration setup shell>
useradd -r -g mysql -s /bin/false mysql# Beginning of source-build specific instructions shell>
tar zxvf mysql-shell>
make install# End of source-build specific instructions # Postinstallation setup shell>
chown -R mysql .shell>
chgrp -R mysql .shell>
bin/mysql_install_db --user=mysql# Before MySQL 5.7.6 shell>
bin/mysqld --initialize --user=mysql# MySQL 5.7.6 and up shell>
bin/mysql_ssl_rsa_setup# MySQL 5.7.6 and up shell>
chown -R root .shell>
chown -R mysql datashell>
bin/mysqld_safe --user=mysql &# Next command is optional shell>
cp support-files/mysql.server /etc/init.d/mysql.server
Before MySQL 5.7.5, mysql_install_db creates a
default option file named
my.cnf in the base
installation directory. This file is created from a template
included in the distribution package named
my-default.cnf. For more information, see
Server Configuration Defaults.
As of MySQL 5.7.18,
my-default.cnf is no
longer included in or installed by distribution packages.
A more detailed version of the source-build specific instructions is shown following.
The procedure shown here does not set up any passwords for MySQL accounts. After following the procedure, proceed to Postinstallation Setup and Testing, for postinstallation setup and testing.
On Unix, set up the
mysql user and group that
will be used to run and execute the MySQL server and own the
database directory. For details, see
mysql System User and Group, in
Installing MySQL on Unix/Linux Using Generic Binaries. Then perform the following
steps as the
mysql user, except as noted.
Pick the directory under which you want to unpack the distribution and change location into it.
Obtain a distribution file using the instructions in How to Get MySQL.
Unpack the distribution into the current directory:
To unpack a compressed tar file, tar can uncompress and unpack the distribution if it has
tar zxvf mysql-
If your tar does not have
zoption support, use gunzip to unpack the distribution and tar to unpack it:
gunzip < mysql-
VERSION.tar.gz | tar xvf -
Alternatively, CMake can uncompress and unpack the distribution:
cmake -E tar zxvf mysql-
To unpack a Zip archive, use WinZip or another tool that can read
Unpacking the distribution file creates a directory named
Change location into the top-level directory of the unpacked distribution:
Configure the source directory. The minimum configuration command includes no options to override configuration defaults:
On Windows, specify the development environment. For example, the following commands configure MySQL for 32-bit or 64-bit builds, respectively:
cmake . -G "Visual Studio 10 2010"shell>
cmake . -G "Visual Studio 10 2010 Win64"
On OS X, to use the Xcode IDE:
cmake . -G Xcode
When you run cmake, you might want to add options to the command line. Here are some examples:
-DBUILD_CONFIG=mysql_release: Configure the source with the same build options used by Oracle to produce binary distributions for official MySQL releases.
-DCMAKE_INSTALL_PREFIX=: Configure the distribution for installation under a particular location.
-DCPACK_MONOLITHIC_INSTALL=1: Cause make package to generate a single installation file rather than multiple files.
-DWITH_DEBUG=1: Build the distribution with debugging support.
For a more extensive list of options, see Chapter 4, MySQL Source-Configuration Options.
To list the configuration options, use one of the following commands:
cmake . -L# overview shell>
cmake . -LH# overview with help text shell>
cmake . -LAH# all params with help text shell>
ccmake .# interactive display
If CMake fails, you might need to reconfigure by running it again with different options. If you do reconfigure, take note of the following:
If CMake is run after it has previously been run, it may use information that was gathered during its previous invocation. This information is stored in
CMakeCache.txt. When CMake starts up, it looks for that file and reads its contents if it exists, on the assumption that the information is still correct. That assumption is invalid when you reconfigure.
Each time you run CMake, you must run make again to recompile. However, you may want to remove old object files from previous builds first because they were compiled using different configuration options.
To prevent old object files or configuration information from being used, run these commands on Unix before re-running CMake:
Or, on Windows:
devenv MySQL.sln /cleanshell>
If you build out of the source tree (as described later), the
CMakeCache.txt file and all built files are
in the build directory, so you can remove that directory to object
files and cached configuration information.
If you are going to send mail to a MySQL mailing list to ask for
configuration assistance, first check the files in the
CMakeFiles directory for useful information
about the failure. To file a bug report, please use the
instructions in How to Report Bugs or Problems.
The second command sets
VERBOSE to show the
commands for each compiled source.
Use gmake instead on systems where you are using GNU make and it has been installed as gmake.
devenv MySQL.sln /build RelWithDebInfo
It is possible to build out of the source tree to keep the tree
clean. If the top-level source directory is named
mysql-src under your current working
directory, you can build in a directory named
bld at the same level like this:
The build directory need not actually be outside the source tree.
For example, to build in a directory, you can build in a directory
bld under the top-level source tree, do
this, starting with
mysql-src as your current
If you have multiple source trees at the same level (for example, to build multiple versions of MySQL), the second strategy can be advantageous. The first strategy places all build directories at the same level, which requires that you choose a unique name for each. With the second strategy, you can use the same name for the build directory within each source tree.
If you have gotten to the compilation stage, but the distribution
does not build, see Chapter 5, Dealing with Problems Compiling MySQL, for
help. If that does not solve the problem, please enter it into our
bugs database using the instructions given in
How to Report Bugs or Problems. If you have installed the latest
versions of the required tools, and they crash trying to process
our configuration files, please report that also. However, if you
command not found error or a similar
problem for required tools, do not report it. Instead, make sure
that all the required tools are installed and that your
PATH variable is set correctly so that your
shell can find them.
This installs the files under the configured installation
directory (by default,
might need to run the command as
To install in a specific directory, add a
DESTDIR parameter to the command line:
make install DESTDIR="/opt/mysql"
Alternatively, generate installation package files that you can install where you like:
This operation produces one or more
files that can be installed like generic binary distribution
packages. See Installing MySQL on Unix/Linux Using Generic Binaries. If you run
operation produces a single file. Otherwise, it produces multiple
On Windows, generate the data directory, then create a
.zip archive installation package:
devenv MySQL.sln /build RelWithDebInfo /project initial_databaseshell>
devenv MySQL.sln /build RelWithDebInfo /project package
You can install the resulting
where you like. See Installing MySQL on Microsoft Windows Using a noinstall Zip Archive.
The remainder of the installation process involves setting up the configuration file, creating the core databases, and starting the MySQL server. For instructions, see Postinstallation Setup and Testing.
The accounts that are listed in the MySQL grant tables initially have no passwords. After starting the server, you should set up passwords for them using the instructions in Postinstallation Setup and Testing.