-
Adding the MySQL Yum Repository
First, add the MySQL Yum repository to your system's repository list. Follow these steps:
Go to the download page for MySQL Yum repository at https://dev.mysql.com/downloads/repo/yum/.
Select and download the release package for your platform.
Install the downloaded release package with the following command, replacing
platform-and-version-specific-package-name
with the name of the downloaded package:shell> sudo rpm -Uvh platform-and-version-specific-package-name.rpm
For example, for version
n
of the package for EL6-based systems, the command is:shell> sudo rpm -Uvh mysql80-community-release-el6-n.noarch.rpm
NoteOnce the release package is installed on your system, any system-wide update by the yum update command (or dnf upgrade for dnf-enabled systems) will automatically upgrade MySQL packages on your system and also replace any native third-party packages, if Yum finds replacements for them in the MySQL Yum repository. See Upgrading MySQL with the MySQL Yum Repository and Replacing a Native Third-Party Distribution of MySQL for details.
-
Selecting a Release Series
When using the MySQL Yum repository, the latest GA release of MySQL is selected for installation by default. If this is what you want, you can skip to the next step, Installing MySQL with Yum.
Within the MySQL Yum repository (https://repo.mysql.com/yum/), different release series of the MySQL Community Server are hosted in different subrepositories. The subrepository for the latest GA series (currently MySQL 8.0)
is enabled by default, and the subrepositories for all other series (for example, the MySQL 5.7 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 <span class="command"><strong>yum</strong></span> in the command with <span class="command"><strong>dnf</strong></span>):
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 the yum-config-manager or dnf config-manager command, you can do that by issuing, for example, the following commands, which disable the subrepository for the 8.0 series and enable the one for the 5.7 series; for platforms that are not dnf-enabled:
shell> sudo yum-config-manager --disable mysql80-community shell> sudo yum-config-manager --enable mysql57-community
For dnf-enabled platforms:
shell> sudo dnf config-manager --disable mysql80-community shell> sudo dnf config-manager --enable mysql57-community
Besides using yum-config-manager or the dnf config-manager command, you can also select a 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:[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
Find the entry for the subrepository you want to configure, and edit the <code class="option">enabled</code> option. Specify <code class="option">enabled=0</code> to disable a subrepository, or <code class="option">enabled=1</code> to enable a subrepository. For example, to install MySQL 5.7, make sure you have <code class="option">enabled=0</code> for the above subrepository entry for MySQL 8.0, and have <code class="option">enabled=1</code> for the entry for the 5.7 series: </p><div class="copytoclipboard-wrapper" style="position: relative;"><pre class="programlisting line-numbers language-ini"><div class="docs-select-all right" id="sa47436371" style="display: none;"><div class="copy-help left" style="display: none;">Press CTRL+C to copy</div> <div class="right"><button class="clipboard-btn" title="Copy to Clipboard"><span class="icon-clipboard"></span></button></div></div><code class=" language-ini"><span class="token comment" spellcheck="true"># Enable to use MySQL 5.7</span>
[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
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
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 the MySQL server, as well as other required packages.
Starting the MySQL Server
Start the MySQL server with the following command:
shell> sudo service mysqld start
For EL7-based platforms, this is the preferred command:
shell> sudo systemctl start mysqld.service
You can check the status of the MySQL server with the following command:
shell> sudo service mysqld status
For EL7-based platforms, this is the preferred command:
shell> sudo systemctl status mysqld.service
MySQL Server Initialization (as of MySQL 5.7): 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.
An SSL certificate and key files are generated in the data directory.
The validate_password plugin 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!';
MySQL's validate_password plugin is installed by default. This will require that passwords contain at least one upper case letter, one lower case letter, one digit, and one special character, and that the total password length is at least 8 characters.