2.9.5 Installing MySQL Using a Development Source Tree

This section describes how to install MySQL from the latest development source code, which is 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.

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

Prerequisites for Installing from Development Source

To install MySQL from a development source tree, your system must satisfy the tool requirements listed at Section 2.9.2, “Source Installation Prerequisites”.

Setting Up a MySQL Git Repository

To set up a MySQL Git repository on your machine:

  1. Clone the MySQL Git repository to your machine. The following command clones the MySQL Git repository to a directory named mysql-server. 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.
  2. When the clone operation completes, the contents of your local MySQL Git repository appear similar to the following:

    ~$ cd mysql-server
    ~/mysql-server$ ls
    client             extra                mysys              storage
    cmake              include              packaging          strings
    CMakeLists.txt     INSTALL              plugin             support-files
    components         libbinlogevents      README             testclients
    config.h.cmake     libbinlogstandalone  router             unittest
    configure.cmake    libmysql             run_doxygen.cmake  utilities
    Docs               libservices          scripts            VERSION
    Doxyfile-ignored   LICENSE              share              vio
    Doxyfile.in        man                  sql                win
    doxygen_resources  mysql-test           sql-common
  3. 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/8.0
      origin/HEAD -> origin/8.0
      origin/cluster-7.2
      origin/cluster-7.3
      origin/cluster-7.4
      origin/cluster-7.5
      origin/cluster-7.6
  4. To view the branch that is checked out in your local repository, issue the git branch command. When you clone the MySQL Git repository, the latest MySQL GA branch is checked out automatically. The asterisk identifies the active branch.

    ~/mysql-server$ git branch
    * 8.0
  5. To check out an earlier MySQL branch, run the git checkout command, specifying the branch name. For example, to check out the MySQL 5.7 branch:

    ~/mysql-server$ git checkout 5.7
    Branch 5.7 set up to track remote branch 5.7 from origin.
    Switched to a new branch '5.7'
  6. 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, ask on the MySQL Community Slack . For information about contributing a patch, see Contributing to MySQL Server .

  7. 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 Section 2.9.4, “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 Section 5.7, “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 Section 28.1.2, “The MySQL Test Suite”.