How to Install MySQL 8 on Amazon Linux 2023
How to Install MySQL 8 on Amazon Linux 2023
Dear Reader, I hope you are doing well today. In my last few posts, I have shared with you how to install Git, Ansible, Nginx, Apache Web Server, Docker, Java, Python, PHP 8.1 etc. on Amazon Linux 2023 or AL2023 EC2 Instance.
Today, you’ll learn how to install MySQL 8 on Amazon Linux 2023 EC2 instance in a step-by-step manner. I will also share the bash script to install MySQL on Amazon Linux 2023 by the end of this tutorial.
Shall we start?
Alright, let’s go !!!
Don’t want to miss any posts from us? join us on our Facebook group, and follow us on Facebook, Twitter, LinkedIn, and Instagram. You can also subscribe to our newsletter below to not miss any updates from us.
A bit on MySQL and Amazon Linux 2023(AL2023)
MySQL: MySQL is an open-source relational database management system or RDBMS. It is the most popular RDBMS in the world. As you might already know, It is based on Structured Query Language (SQL).
- You can store data for different types of apps for example web applications, e-commerce applications, social media sites etc.
- It is very easy to use and manage and most of us are familiar with it.
- It is a superbly scalable and reliable RDBMS.
- Is popular among small projects to big enterprise applications.
- Supported by a large community of developers etc.
Amazon Linux 2023: Amazon Linux 2023 or AL2023 is the next-generation Amazon Linux AMI provided by AWS. It is rpm-based and optimized for the cloud. It is designed with the latest Linux innovations to deliver high-performance and stable Linux systems.
Prerequisite
Before you can run MySQL or to be specific MySQL 8 on an Amazon Linux 2023 EC2 instance, you need one up and running.
You can follow my tutorial to launch an Amazon Linux 2 Instance within minutes.
Steps to Install MySQL 8 on Amazon Linux 2023 Instance
- SSH into your Amazon Linux 2023 EC2 Instance
- Search for MySQL
- Update Package Repository to Latest
- Add MySQL Repository to AL2023
- Install MySQL 8 on Amazon Linux 2023 Instance
- Verify MySQL Installation
- Start and Enable MySQL Service
- Post Installation Configuration
Step 1: SSH into your Amazon Linux 2023 EC2 Instance
We already have an Amazon Linux 2023 instance up and running. Therefore we are all set to install MySQL on it. However, If that’s not the case, feel free to launch one using one of my previous tutorials.
Once up and running, select your instance and click on Connect as shown in the below screenshot.
Verify that ec2-user is showing in the user name field and click Connect again.
In a matter of seconds, you should be connected to your instance.
Important Note: If you prefer connecting from your local, feel free to use the command- ssh -i /path/my-key-pair.pem ec2-user@instance-public-ip
Step 2: Search for MySQL on Amazon Linux 2023
If you search for MySQL using the below command-
dnf search mysql
It resolves to MariaDB- a community-developed, commercially supported fork of MySQL as you can see below-
The reason is that AWS recommends using MariaDB and hence doesn’t provide MySQL in the official core repository.
However, not everyone wants to go ahead with MariaDB. So If you are also here to install MySQL instead of Maria DB on your Amazon Linux 2023, you are at the right place.
Step 3: Update the Package Repository to the Latest
Before you install any software for example MySQL in your Amazon Linux 2023 instance, it’s recommended to update your system packages to the latest.
You can run the system update using the below command-
sudo dnf update
Type sudo dnf update and hit enter.
Your system gets updated with the latest packages.
Step 4: Add MySQL Repository to AL2023
As we just said AWS doesn’t provide mysql in the core repo. However, MySQL provides a yum repository that you can use to install MySQL 8 on your Amazon Linux 2023.
sudo wget https://dev.mysql.com/get/mysql80-community-release-el9-4.noarch.rpm
sudo dnf install mysql80-community-release-el9-4.noarch.rpm
Let’s install it now-
Once, installed you can verify it by
dnf repolist enabled
Step 5: Install MySQL 8 on Amazon Linux 2023
All set to install MySQL 8 on Amazon Linux 2023-
sudo dnf install mysql-community-server
Type the above command and hit enter.
Type y when the prompt asks for it.
A prompt will also ask you to import a key so that authenticity can be checked. Say yes again as shown below-
[ec2-user@ip-172-31-5-48 ~]$ sudo dnf install mysql-community-server
MySQL 8.0 Community Server 3.0 MB/s | 1.0 MB 00:00
MySQL Connectors Community 86 kB/s | 27 kB 00:00
MySQL Tools Community 865 kB/s | 366 kB 00:00
Dependencies resolved.
=====================================================================================================================================================
Package Architecture Version Repository Size
=====================================================================================================================================================
Installing:
mysql-community-server x86_64 8.0.34-1.el9 mysql80-community 49 M
Installing dependencies:
mysql-community-client x86_64 8.0.34-1.el9 mysql80-community 3.5 M
mysql-community-client-plugins x86_64 8.0.34-1.el9 mysql80-community 1.4 M
mysql-community-common x86_64 8.0.34-1.el9 mysql80-community 554 k
mysql-community-icu-data-files x86_64 8.0.34-1.el9 mysql80-community 2.3 M
mysql-community-libs x86_64 8.0.34-1.el9 mysql80-community 1.4 M
Transaction Summary
=====================================================================================================================================================
Install 6 Packages
Total download size: 58 M
Installed size: 334 M
Is this ok [y/N]: y
Downloading Packages:
(1/6): mysql-community-common-8.0.34-1.el9.x86_64.rpm 6.3 MB/s | 554 kB 00:00
(2/6): mysql-community-client-plugins-8.0.34-1.el9.x86_64.rpm 12 MB/s | 1.4 MB 00:00
(3/6): mysql-community-client-8.0.34-1.el9.x86_64.rpm 24 MB/s | 3.5 MB 00:00
(4/6): mysql-community-icu-data-files-8.0.34-1.el9.x86_64.rpm 30 MB/s | 2.3 MB 00:00
(5/6): mysql-community-libs-8.0.34-1.el9.x86_64.rpm 24 MB/s | 1.4 MB 00:00
(6/6): mysql-community-server-8.0.34-1.el9.x86_64.rpm 72 MB/s | 49 MB 00:00
-----------------------------------------------------------------------------------------------------------------------------------------------------
Total 70 MB/s | 58 MB 00:00
MySQL 8.0 Community Server 3.0 MB/s | 3.1 kB 00:00
Importing GPG key 0x3A79BD29:
Userid : "MySQL Release Engineering "
Fingerprint: 859B E8D7 C586 F538 430B 19C2 467B 942D 3A79 BD29
From : /etc/pki/rpm-gpg/RPM-GPG-KEY-mysql-2022
Is this ok [y/N]: y
Key imported successfully
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
Preparing : 1/1
Installing : mysql-community-common-8.0.34-1.el9.x86_64 1/6
Installing : mysql-community-client-plugins-8.0.34-1.el9.x86_64 2/6
Installing : mysql-community-libs-8.0.34-1.el9.x86_64 3/6
Running scriptlet: mysql-community-libs-8.0.34-1.el9.x86_64 3/6
Installing : mysql-community-client-8.0.34-1.el9.x86_64 4/6
Installing : mysql-community-icu-data-files-8.0.34-1.el9.x86_64 5/6
Running scriptlet: mysql-community-server-8.0.34-1.el9.x86_64 6/6
Installing : mysql-community-server-8.0.34-1.el9.x86_64 6/6
Running scriptlet: mysql-community-server-8.0.34-1.el9.x86_64 6/6
Verifying : mysql-community-client-8.0.34-1.el9.x86_64 1/6
Verifying : mysql-community-client-plugins-8.0.34-1.el9.x86_64 2/6
Verifying : mysql-community-common-8.0.34-1.el9.x86_64 3/6
Verifying : mysql-community-icu-data-files-8.0.34-1.el9.x86_64 4/6
Verifying : mysql-community-libs-8.0.34-1.el9.x86_64 5/6
Verifying : mysql-community-server-8.0.34-1.el9.x86_64 6/6
=====================================================================================================================================================
WARNING:
A newer release of "Amazon Linux" is available.
Available Versions:
Version 2023.1.20230628:
Run the following command to upgrade to 2023.1.20230628:
dnf upgrade --releasever=2023.1.20230628
Release notes:
https://docs.aws.amazon.com/linux/al2023/release-notes/relnotes.html
Version 2023.1.20230629:
Run the following command to upgrade to 2023.1.20230629:
dnf upgrade --releasever=2023.1.20230629
Release notes:
https://docs.aws.amazon.com/linux/al2023/release-notes/relnotes.html
Version 2023.1.20230705:
Run the following command to upgrade to 2023.1.20230705:
dnf upgrade --releasever=2023.1.20230705
Release notes:
https://docs.aws.amazon.com/linux/al2023/release-notes/relnotes.html
Version 2023.1.20230719:
Run the following command to upgrade to 2023.1.20230719:
dnf upgrade --releasever=2023.1.20230719
Release notes:
https://docs.aws.amazon.com/linux/al2023/release-notes/relnotes.html
Version 2023.1.20230725:
Run the following command to upgrade to 2023.1.20230725:
dnf upgrade --releasever=2023.1.20230725
Release notes:
https://docs.aws.amazon.com/linux/al2023/release-notes/relnotes.html
Version 2023.1.20230809:
Run the following command to upgrade to 2023.1.20230809:
dnf upgrade --releasever=2023.1.20230809
Release notes:
https://docs.aws.amazon.com/linux/al2023/release-notes/relnotes.html
Version 2023.1.20230825:
Run the following command to upgrade to 2023.1.20230825:
dnf upgrade --releasever=2023.1.20230825
Release notes:
https://docs.aws.amazon.com/linux/al2023/release-notes/relnotes.html
=====================================================================================================================================================
Installed:
mysql-community-client-8.0.34-1.el9.x86_64 mysql-community-client-plugins-8.0.34-1.el9.x86_64 mysql-community-common-8.0.34-1.el9.x86_64
mysql-community-icu-data-files-8.0.34-1.el9.x86_64 mysql-community-libs-8.0.34-1.el9.x86_64 mysql-community-server-8.0.34-1.el9.x86_64
Complete!
[ec2-user@ip-172-31-5-48 ~]$
Step 6: Verify MySQL Installation
mysql -V
As you can see MySQL 8 is successfully installed on Amazon Linux 2023. We verified the version using mysql -V.
Step 7: Start and Enable MySQL
As of now, MySQL is just installed however it’s not yet running.
You can run the below set of commands to start and enable it to auto-start on boot.
sudo systemctl start mysqld //Starts MySQL service
sudo systemctl enable mysqld //Enabled mySQL service to restart on bot
systemctl status mysqld //Check MySQL service running status
Congratulation !!!
You have successfully installed and started MySQL 8 on your Amazon Linux 2023 EC2 Instance.
Step 8: Post Installation Configuration of MySQL
Once installation is done, you should-
- Get Initial Password
- Secure MySQL Installation
- Connect to MySQL and run a simple query
1. Get Initial Password
sudo grep 'temporary password' /var/log/mysqld.log
2. Secure MySQL Installation
You must secure your MySQL to enhance the overall security of your database.
sudo mysql_secure_installation -p
Provide answers to questions as shown below or as per your need-
[ec2-user@ip-172-31-5-48 ~]$ sudo mysql_secure_installation -p
Enter password:
Securing the MySQL server deployment.
The existing password for the user account root has expired. Please set a new password.
New password:
Re-enter new password:
The 'validate_password' component is installed on the server.
The subsequent steps will run with the existing configuration
of the component.
Using existing password for root.
Estimated strength of the password: 100
Change the password for root ? ((Press y|Y for Yes, any other key for No) : n
... skipping.
By default, a MySQL installation has an anonymous user,
allowing anyone to log into MySQL without having to have
a user account created for them. This is intended only for
testing, and to make the installation go a bit smoother.
You should remove them before moving into a production
environment.
Remove anonymous users? (Press y|Y for Yes, any other key for No) : y
Success.
Normally, root should only be allowed to connect from
'localhost'. This ensures that someone cannot guess at
the root password from the network.
Disallow root login remotely? (Press y|Y for Yes, any other key for No) : y
Success.
By default, MySQL comes with a database named 'test' that
anyone can access. This is also intended only for testing,
and should be removed before moving into a production
environment.
Remove test database and access to it? (Press y|Y for Yes, any other key for No) : y
- Dropping test database...
Success.
- Removing privileges on test database...
Success.
Reloading the privilege tables will ensure that all changes
made so far will take effect immediately.
Reload privilege tables now? (Press y|Y for Yes, any other key for No) : y
Success.
All done!
[ec2-user@ip-172-31-5-48 ~]$
3. Connect to MySQL and run a simple query
mysql -u root -p
Enter the password we set for the root user in the last step and hit enter. You see have the mysql prompt. Run the command of your choice. For example, I have created a database and then listed them using the below commands-
CREATE DATABASE IF NOT EXISTS demodb;
SHOW DATABASES;
[ec2-user@ip-172-31-5-48 ~]$ mysql -u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or g.
Your MySQL connection id is 11
Server version: 8.0.34 MySQL Community Server - GPL
Copyright (c) 2000, 2023, 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> CREATE DATABASE IF NOT EXISTS demodb;
Query OK, 1 row affected, 1 warning (0.01 sec)
mysql> SHOW DATABASES;
+--------------------+
| Database |
+--------------------+
| demodb |
| information_schema |
| mysql |
| performance_schema |
| sys |
+--------------------+
5 rows in set (0.00 sec)
mysql>
We are successfully able to run queries on MySQL DB running on Amazon Linux 2023.
Final Script to Install MySQL on Amazon Linux 2023-
#!/bin/bash
echo "Installing mySQL on Amazon Linux 2023"
sudo dnf update
sudo wget https://dev.mysql.com/get/mysql80-community-release-el9-4.noarch.rpm
sudo dnf install mysql80-community-release-el9-4.noarch.rpm
sudo dnf install mysql-community-server
Conclusion
In this how-to guide, we talked about How to Install MySQL 8 on Amazon Linux 2023 Instance.
We saw that MySQL 8 is not available in the core repository of Amazon Linux 2023. As Amazon recommends MariaDB. We added the Yum repository provided by MySQL official and installed MySQL after that.
Later, we did post-installation configuration and ran a few commands to create a database and list them.
Were you able to install MySQL 8 on Amazon Linux 2023 using this tutorial? Let me know in the comment section.
Enjoyed the content?
Subscribe to our newsletter below to get awesome AWS learning materials delivered straight to your inbox.
Don’t forget to motivate us-
- Follow us on
- Share this post with your friends