In today’s article we shall install MySQL 5.7 on Rocky Linux 8|AlmaLinux 8. MySQL is a universally adopted Relational SQL Database Management System. MySQL database powers Web, Desktop, Gaming, Banking applications among many other critical workloads in enterprise setups. MySQL development was initially under MySQL AB, a Swedish company, before being acquired by Oracle Corporation in 2010. If you’ll need support for your MySQL server installations, Oracle is the company to contact.
MySQL is a multi-user, multi-threaded SQL database server that uses a client/server implementation consisting of a server daemon (mysqld) and many different client programs and libraries. Our focus will be on the installation of MySQL server and client packages. We will install MySQL Community Server 5.7 on Rocky Linux 8|AlmaLinux 8.
Some the the features added in MySQL 5.7 are:
- Security improvements – Many security improvements in 5.7 release
- SQL mode changes. – Strict SQL mode for transactional storage engines
- InnoDB enhancements – Multiple
InnoDB
enhancements added in MYSQL 5.7. - JSON support – Beginning with MySQL 5.7.8, MySQL supports a native JSON type
- System and status variables – System and status variable information is now available in Performance Schema tables
- Condition handling – MySQL 5.7 supports stacked diagnostics areas.
- Logging – Addition of native syslog support extended to include Windows support
- Changing the replication source without STOP SLAVE
- Among many other features
Install MySQL 5.7 on Rocky Linux 8|AlmaLinux 8
Follow the steps highlighted in the next sections to have a working installation ofMySQL 5.7 on Rocky Linux 8|AlmaLinux 8.
Step 1 – Update System
As usual, ensure your Rocky or AlmaLinux system is updated:
sudo dnf -y update
Upon a successful upgrade, perform system reboot to use new features from updates
sudo systemctl reboot
Step 2 – Add EL7 based MySQL Repository
The defaultRocky Linux 8|AlmaLinux 8 only contains MySQL 8.0 packages. The same is applicable to MySQL Community Server repositories provided by Oracle. The hack around this involve the use of Enterprise Linux 7 based systems repositories.
Add the repo by running the commands below:
sudo tee /etc/yum.repos.d/mysql-community.repo<
The commands executed also adds connectors and tools repositories for MySQL 5.7. Once configured, disable default mysql AppStream modules
sudo dnf remove @mysql
sudo dnf -y module reset mysql
sudo dnf -y module disable mysql
Step 3 –Install MySQL 5.7 on Rocky Linux 8|AlmaLinux 8
Disable MySQL 8.0 community repo
sudo dnf config-manager --disable mysql80-community
Then enable one for MySQL 5.7
sudo dnf config-manager --enable mysql57-community
And lastly install MySQL 5.7 on Rocky Linux 8 | AlmaLinux 8 system
sudo dnf install mysql-community-server
Review all dependencies and proceed if satisfied:
MySQL 5.7 Community Server 221 kB/s | 2.6 kB 00:00
MySQL Connectors Community 228 kB/s | 2.6 kB 00:00
MySQL Tools Community 231 kB/s | 2.6 kB 00:00
Dependencies resolved.
======================================================================================================================================================================================================
Package Architecture Version Repository Size
======================================================================================================================================================================================================
Installing:
mysql-community-server x86_64 5.7.37-1.el7 mysql57-community 174 M
Installing dependencies:
libaio x86_64 0.3.112-1.el8 baseos 31 k
mysql-community-client x86_64 5.7.37-1.el7 mysql57-community 25 M
mysql-community-common x86_64 5.7.37-1.el7 mysql57-community 311 k
mysql-community-libs x86_64 5.7.37-1.el7 mysql57-community 2.4 M
Transaction Summary
======================================================================================================================================================================================================
Install 5 Packages
Total download size: 202 M
Installed size: 878 M
Is this ok [y/N]: y
Use rpm command to check exact version of installed package:
$ rpm -qi mysql-community-server
Name : mysql-community-server
Version : 5.7.37
Release : 1.el7
Architecture: x86_64
Install Date: Wed Jan 19 23:02:33 2022
Group : Applications/Databases
Size : 800688121
License : Copyright (c) 2000, 2021, Oracle and/or its affiliates. All rights reserved. Under GPLv2 license as shown in the Description field.
Signature : RSA/SHA256, Thu Dec 16 02:02:44 2021, Key ID 467b942d3a79bd29
Source RPM : mysql-community-5.7.37-1.el7.src.rpm
Build Date : Mon Nov 29 20:47:12 2021
Build Host : pb2-el7-05.regionaliad02.mysql2iad.oraclevcn.com
Relocations : (not relocatable)
Packager : MySQL Release Engineering
Vendor : Oracle and/or its affiliates
URL : http://www.mysql.com/
Summary : A very fast and reliable SQL database server
....
Step 4 – Configure MySQL 5.7 on Rocky Linux 8|AlmaLinux 8
Start and enable mysqld service
sudo systemctl enable --now mysqld
Service should be in running state
$ systemctl status mysqld
● mysqld.service - MySQL Server
Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled)
Active: active (running) since Wed 2022-01-19 23:04:00 UTC; 22s ago
Docs: man:mysqld(8)
http://dev.mysql.com/doc/refman/en/using-systemd.html
Process: 5166 ExecStart=/usr/sbin/mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid $MYSQLD_OPTS (code=exited, status=0/SUCCESS)
Process: 5112 ExecStartPre=/usr/bin/mysqld_pre_systemd (code=exited, status=0/SUCCESS)
Main PID: 5168 (mysqld)
Tasks: 27 (limit: 49496)
Memory: 330.8M
CGroup: /system.slice/mysqld.service
└─5168 /usr/sbin/mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid
Get temporary password generated for root database user account
$ sudo grep 'A temporary password' /var/log/mysqld.log |tail -1
2022-01-19T23:03:58.688374Z 1 [Note] A temporary password is generated for [email protected]: teai#gg;3krE
Use the password to access MySQL shell and secure it
$ sudo mysql_secure_installation
Securing the MySQL server deployment.
Enter password for user root:
The existing password for the user account root has expired. Please set a new password.
New password:
Re-enter new password:
Proceed to set other security options
Do you wish to continue with the password provided?(Press y|Y for Yes, any other key for No) : Y
Remove anonymous users? (Press y|Y for Yes, any other key for No) : Y
Disallow root login remotely? (Press y|Y for Yes, any other key for No) : Y
Remove test database and access to it? (Press y|Y for Yes, any other key for No) : Y
Reload privilege tables now? (Press y|Y for Yes, any other key for No) : Y
Test access with set password:
$ mysql -u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 11
Server version: 5.7.37 MySQL Community Server (GPL)
Copyright (c) 2000, 2022, Oracle and/or its affiliates.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> SELECT VERSION();
+-----------+
| VERSION() |
+-----------+
| 5.7.37 |
+-----------+
1 row in set (0.00 sec)
mysql> EXIT
Bye
Conclusion
In this article we’ve been able to install and secure MySQL 5.7 on Rocky Linux 8|AlmaLinux 8. It is not an officially supported installation on EL8 system but it works for test purposes. For Production workloads, the recommended version of MySQL to run on Rocky Linux 8|AlmaLinux 8 should be 8.0. If the application is still designed for 5.7, plan for upgrade to 8.0.