This section describes how to install MySQL from the latest development source code, which is currently hosted on GitHub. To obtain the MySQL Server source code from this repository hosting service, you can set up a local MySQL Git repository.
On GitHub, MySQL Server and other MySQL projects are found on the MySQL page. The MySQL Server project is a single repository that contains branches for several MySQL series, such as 5.5, 5.6, and 5.7.
MySQL officially joined GitHub in September, 2014. For more information about MySQL's move to GitHub, refer to the announcement on the MySQL Release Engineering blog: MySQL on GitHub
To install MySQL from a development source tree, your system must satisfy the tool requirements outlined in Chapter 1, Installing MySQL from Source.
To set up a MySQL Git repository on your machine, use this procedure:
Clone the MySQL Git repository to your machine. The
following command clones the MySQL Git repository to a
directory named mysql-server. The
download size is approximately 437 MB. The initial download
will take some time to complete, depending on the speed of
your connection.
~$ git clone https://github.com/mysql/mysql-server.git Cloning into 'mysql-server'... remote: Counting objects: 1035465, done. remote: Total 1035465 (delta 0), reused 0 (delta 0) Receiving objects: 100% (1035465/1035465), 437.48 MiB | 5.10 MiB/s, done. Resolving deltas: 100% (855607/855607), done. Checking connectivity... done. Checking out files: 100% (21902/21902), done.
When the clone operation completes, the contents of your local MySQL Git repository appear similar to the following:
~$ cd mysql-server ~/mysql-server$ ls BUILD COPYING libmysqld regex unittest BUILD-CMAKE dbug libservices scripts VERSION client Docs man sql vio cmake extra mysql-test sql-common win CMakeLists.txt include mysys storage zlib cmd-line-utils INSTALL-SOURCE packaging strings config.h.cmake INSTALL-WIN-SOURCE plugin support-files configure.cmake libmysql README tests
Use the git branch -r command to view the remote tracking branches for the MySQL repository.
~/mysql-server$ git branch -r origin/5.5 origin/5.6 origin/5.7 origin/HEAD -> origin/5.7 origin/cluster-7.2 origin/cluster-7.3 origin/cluster-7.4
To view the branches that are checked out in your local repository, issue the git branch command. When you cloned the MySQL Git repository, the MySQL 5.7 branch was checked out automatically. The asterisk identifies the 5.7 branch as the active branch.
~/mysql-server$ git branch * 5.7
To check out a different MySQL branch, run the git checkout command, specifying the branch name. For example, to checkout the MySQL 5.5 branch:
~/mysql-server$ git checkout 5.5 Branch 5.5 set up to track remote branch 5.5 from origin. Switched to a new branch '5.5'
Run git branch to verify that the MySQL
5.5 branch is present. MySQL 5.5, which is the last branch
you checked out, is marked by an asterisk indicating that it
is the active branch.
~/mysql-server$ git branch * 5.5 5.7
Use the git checkout command to switch back to the MySQL 5.7 branch:
~/mysql-server$ git checkout 5.7
To obtain changes made after your initial setup of the MySQL
Git repository, switch to the branch you want to update and
issue the git pull command:
~/mysql-server$ git checkout 5.7 ~/mysql-server$ git pull
To examine the commit history, use the git
log option:
~/mysql-server$ git log
You can also browse commit history and source code on the GitHub MySQL site.
If you see changes or code that you have a question about,
send an email to the MySQL internals
mailing list. See MySQL Mailing Lists. For
information about contributing a patch, see
Contributing
to MySQL Server.
After you have cloned the MySQL Git repository and have checked out the branch you want to build, you can build MySQL Server from the source code. Instructions are provided in Chapter 2, Installing MySQL Using a Standard Source Distribution, except that you skip the part about obtaining and unpacking the distribution.
Be careful about installing a build from a distribution
source tree on a production machine. The installation
command may overwrite your live release installation. If you
already have MySQL installed and do not want to overwrite
it, run CMake with values for the
CMAKE_INSTALL_PREFIX,
MYSQL_TCP_PORT, and
MYSQL_UNIX_ADDR options
different from those used by your production server. For
additional information about preventing multiple servers
from interfering with each other, see
Running Multiple MySQL Instances on One Machine.
Play hard with your new installation. For example, try to make new features crash. Start by running make test. See The MySQL Test Suite.