### 2.1.2 Which MySQL Version and Distribution to Install

[]()[]()

 When preparing to install MySQL, decide which version and distribution format (binary or source) to use.

[]()[]()[]()[]()[]()

 First, decide whether to install a development release or a General Availability (GA) release. Development releases have the newest features, but are not recommended for production use. GA releases, also called production or stable releases, are meant for production use. We recommend using the most recent GA release.

[]()[]()[]()[]()[]()[]()[]()[]()

 The naming scheme in MySQL 8.0 uses release names that consist of three numbers and an optional suffix (for example, **mysql-8.0.1-dmr**). The numbers within the release name are interpreted as follows:

* The first number (**8**) is the major version number.

* The second number (**0**) is the minor version number. Taken together, the major and minor numbers constitute the release series number. The series number describes the stable feature set.

* The third number (**1**) is the version number within the release series. This is incremented for each new bugfix release. In most cases, the most recent version within a series is the best choice.

 Release names can also include a suffix to indicate the stability level of the release. Releases within a series progress through a set of suffixes to indicate how the stability level improves. The possible suffixes are:

* **dmr** indicates a development milestone release (DMR). MySQL development uses a milestone model, in which each milestone introduces a small subset of thoroughly tested features. From one milestone to the next, feature interfaces may change or features may even be removed, based on feedback provided by community members who try these early releases. Features within milestone releases may be considered to be of pre-production quality.

* **rc** indicates a Release Candidate (RC). Release candidates are believed to be stable, having passed all of MySQL's internal testing. New features may still be introduced in RC releases, but the focus shifts to fixing bugs to stabilize features introduced earlier within the series.

* Absence of a suffix indicates a General Availability (GA) or Production release. GA releases are stable, having successfully passed through the earlier release stages, and are believed to be reliable, free of serious bugs, and suitable for use in production systems.

 Development within a series begins with DMR releases, followed by RC releases, and finally reaches GA status releases.

 After choosing which MySQL version to install, decide which distribution format to install for your operating system. For most use cases, a binary distribution is the right choice. Binary distributions are available in native format for many platforms, such as RPM packages for Linux or DMG packages for macOS. Distributions are also available in more generic formats such as Zip archives or compressed **tar** files. On Windows, you can use [the MySQL Installer](mysql-installer.html) to install a binary distribution.

 Under some circumstances, it may be preferable to install MySQL from a source distribution:

* You want to install MySQL at some explicit location. The standard binary distributions are ready to run at any installation location, but you might require even more flexibility to place MySQL components where you want.

* You want to configure [**mysqld**](mysqld.html) with features that might not be included in the standard binary distributions. Here is a list of the most common extra options used to ensure feature availability:

  * [`-DWITH_LIBWRAP=1`](source-configuration-options.html#option_cmake_with_libwrap) for TCP wrappers support.

  * [`-DWITH_ZLIB={system|bundled}`](source-configuration-options.html#option_cmake_with_zlib) for features that depend on compression

  * [`-DWITH_DEBUG=1`](source-configuration-options.html#option_cmake_with_debug) for debugging support

   For additional information, see [Section 2.9.7, “MySQL Source-Configuration Options”](source-configuration-options.html).

* You want to configure [**mysqld**](mysqld.html) without some features that are included in the standard binary distributions.

* You want to read or modify the C and C++ code that makes up MySQL. For this purpose, obtain a source distribution.

* Source distributions contain more tests and examples than binary distributions.

