Installing MySQL on Linux

Installing MySQL on Linux

Linux supports a number of different solutions for installing MySQL.

Table  Linux Installation Methods and Information

sql01

As an alternative, you can use the package manager on your system to automatically download and install MySQL with packages from the native software repositories of your Linux distribution. These native packages are often several versions behind the currently available release. You will also normally be unable to install development milestone releases (DMRs), as these are not usually made available in the native repositories.

Installing MySQL on Linux Using the MySQL Yum Repository

The MySQL Yum repository for Oracle Linux, Red Hat Enterprise Linux, CentOS, and Fedora provides RPM packages for installing the MySQL server, client, MySQL Workbench, MySQL Utilities, MySQL Router, MySQL Shell, Connector/ODBC, Connector/Python and so on.

Before You Start
As a popular, open-source software, MySQL, in its original or re-packaged form, is widely installed on many systems from various sources, including different software download sites, software repositories, and so on. The following instructions assume that MySQL is not already installed on your system using a third-party-distributed RPM package,

Steps for a Fresh Installation of MySQL

                   Follow the steps below to install the latest GA version of MySQL with the MySQL Yum repository:

Adding the MySQL Yum Repository

First, add the MySQL Yum repository to your system’s repository list. This is a one-time operation, which can be performed by installing an RPM provided by MySQL.

a. Go to the Download MySQL Yum Repository page (https://dev.mysql.com/downloads/repo/yum/) in the MySQL Developer Zone.

b. Select and download the release package for your platform.

c. Install the downloaded release package with the following command, replacing platform-and- version-specific-package-name with the name of the downloaded RPM package:

shell> sudo yum localinstall platform-and-version-specific-package-name.rpm

For an EL6-based system, the command is in the form of:
shell> sudo yum localinstall mysql80-community-release-el6-{version-number}.noarch.rpm

For an EL7-based system:
shell> sudo yum localinstall mysql80-community-release-el7-{version-number}.noarch.rpm

For an EL8-based system:
shell> sudo yum localinstall mysql80-community-release-el8-{version-number}.noarch.rpm

For Fedora 31:
shell> sudo dnf localinstall mysql80-community-release-fc31-{version-number}.noarch.rpm

For Fedora 30:
shell> sudo dnf localinstall mysql80-community-release-fc30-{version-number}.noarch.rpm

For Fedora 29:
shell> sudo dnf localinstall mysql80-community-release-fc29-{version-number}.noarch.rpm

The installation command adds the MySQL Yum repository to your system’s repository list and downloads the GnuPG key to check the integrity of the software packages.

You can check that the MySQL Yum repository has been successfully added by the following command (for dnf-enabled systems, replace yum in the command with dnf):

shell> yum repolist enabled | grep “mysql.*-community.*”

Selecting  a Release Series

When using the MySQL Yum repository, the latest GA series is selected for installation by default. If this is what you want, you can skip to the next step, Installing MySQL.

Within the MySQL Yum repository, different release series of the MySQL Community Server are hosted in different subrepositories. The subrepository for the latest GA series  is enabled by default, and the subrepositories for all other series  are disabled by default. Use this command to see all the subrepositories in the MySQL Yum repository, and see which of them are enabled or disabled (for dnf-enabled systems, replace yum in the command with dnf):
shell> yum repolist all | grep mysql

To install the latest release from the latest GA series, no configuration is needed. To install the latest release from a specific series other than the latest GA series, disable the subrepository for the latest GA series and enable the subrepository for the specific series before running the installation command. If your platform supports yum-config-manager, you can do that by issuing these commands, which disable the subrepository for the 5.7 series and enable the one for the 8.0 series:
shell> sudo yum-config-manager –disable mysql57-community
           shell> sudo yum-config-manager –enable mysql80-community

For dnf-enabled platforms:
shell> sudo dnf config-manager –disable mysql57-community
         shell> sudo dnf config-manager –enable mysql80-community

Besides using yum-config-manager or the dnf config-manager command, you can also select a release series by editing manually the /etc/yum.repos.d/mysql-community.repo file. This is a typical entry for a release series’ subrepository in the file:
                     [mysql57-community]
                     name=MySQL 5.7 Community Server
                    baseurl=http://repo.mysql.com/yum/mysql-5.7-community/el/6/$basearch/
                    enabled=1
                   gpgcheck=1
                  gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql

Find the entry for the subrepository you want to configure, and edit the enabled option. Specify enabled=0 to disable a subrepository, or enabled=1 to enable a subrepository. For example, to install MySQL 8.0, make sure you have enabled=0 for the above subrepository entry for MySQL 5.7, and have enabled=1 for the entry for the 8.0 series:
# Enable to use MySQL 8.0
                [mysql80-community]
                name=MySQL 8.0 Community Server
                baseurl=http://repo.mysql.com/yum/mysql-8.0-community/el/6/$basearch/
                enabled=1
                gpgcheck=1
                gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql

You should only enable subrepository for one release series at any time. When subrepositories for more than one release series are enabled, the latest series will be used by Yum.

Verify that the correct subrepositories have been enabled and disabled by running the following command and checking its output (for dnf-enabled systems, replace yum in the command with dnf):
  shell> yum repolist enabled | grep mysql

Disabling the Default MySQL Module

EL8-based systems such as RHEL8 and Oracle Linux 8 include a MySQL module that is enabled by default. Unless this module is disabled, it masks packages provided by MySQL repositories. To disable the included module and make the MySQL repository packages visible, use the following command (for dnf-enabled systems, replace yum in the command with dnf):
shell> sudo yum module disable mysql

Installing MySQL

Install MySQL by the following command (for dnf-enabled systems, replace yum in the command with dnf):
shell> sudo yum install mysql-community-server
This installs the package for MySQL server and also packages for the components required to run the server, including packages for the client , the common error messages and character sets for client and server , and the shared client libraries .

Starting the MySQL Server

Start the MySQL server with the following command:
shell> sudo service mysqld start
               Starting mysqld:[ OK ]
You can check the status of the MySQL server with the following command:
shell> sudo service mysqld status
               mysqld (pid 3066) is running.

At the initial start up of the server, the following happens, given that the data directory of the server is empty:
• The server is initialized.
• SSL certificate and key files are generated in the data directory.
• validate_password is installed and enabled.
• A superuser account ‘root’@’localhost is created. A password for the superuser is set and stored in the error log file. To reveal it, use the following command:
shell> sudo grep ‘temporary password’ /var/log/mysqld.log

Change the root password as soon as possible by logging in with the generated, temporary password and set a custom password for the superuser account:

               shell> mysql -uroot -p
               mysql> ALTER USER ‘root’@’localhost’ IDENTIFIED BY ‘MyNewPass4!’;

Installing Additional MySQL Products and Components with Yum

You can use Yum to install and manage individual components of MySQL. Some of these components are hosted in sub-repositories of the MySQL Yum repository.
shell> sudo yum –disablerepo=\* –enablerepo=’mysql*-community*’ list available

Install any packages of your choice with the following command, replacing package-name with name of the package (for dnf-enabled systems, replace yum in the command with dnf):
  shell> sudo yum install package-name

For example, to install MySQL Workbench on Fedora:
shell> sudo dnf install mysql-workbench-community

To install the shared client libraries (for dnf-enabled systems, replace yum in the command with dnf):
shell> sudo yum install mysql-community-libs

Platform Specific Notes

ARM Support

ARM 64-bit (aarch64) is supported on Oracle Linux 7 and requires the Oracle Linux 7 Software Collections Repository (ol7_software_collections). For example, to install the server:
shell> yum-config-manager –enable ol7_software_collections
                 shell> yum install mysql-community-server

“ARM 64-bit (aarch64) is supported on Oracle Linux 7 as of MySQL 8.0.12.”

Updating MySQL with Yum

Besides installation, you can also perform updates for MySQL products and components using the MySQL Yum repository.

Installing MySQL on Linux Using the MySQL APT Repository

The MySQL APT repository provides deb packages for installing and managing the MySQL server, client, and other components on the current Debian and Ubuntu releases.

Installing MySQL on Linux Using the MySQL SLES Repository

The MySQL SLES repository provides RPM packages for installing and managing the MySQL server, client, and other components on SUSE Enterprise Linux Server.