In our guide today, we are looking at how to install MySQL 5.7 on Ubuntu 20.04 (Focal Fossa) Server. MySQL is one of the most commonly used Database Management Systems. It uses the concept of relational databases and has a client/server architecture. It can be installed on various operating systems including Windows, CentOS and Debian among others.
The below steps describe how to install and configure MySQL 5.7 on Ubuntu 20.04. It start with adding APT repository with packages for MySQL then dives to the actual package installations and configurations.
Step 1: Add MySQL APT repository
Ubuntu already comes with the default MySQL package repositories. In order to add or install the latest repositories, we are going to install package repositories . Download the repository using the below command:
sudo apt update
sudo apt install wget -y
wget https://dev.mysql.com/get/mysql-apt-config_0.8.12-1_all.deb
Once downloaded, install the repository by running the command below:
sudo dpkg -i mysql-apt-config_0.8.12-1_all.deb
In the prompt, choose Ubuntu Bionic and click Ok
The next prompt shows MySQL 8.0 chosen by default. Choose the first option and click OK
In the next prompt, select MySQL 5.7 server and click OK.
The next prompt selects MySQL5.7 by default. Choose the last otpion Ok and click OK
Step 2: Update MySQL Repository
Run the below command to update your system packages
sudo apt-get update
Now search for MySQL 5,7 using apt-cache as shown below:
$ sudo apt-cache policy mysql-server
mysql-server:
Installed: (none)
Candidate: 8.0.26-0ubuntu0.20.04.2
Version table:
8.0.26-0ubuntu0.20.04.2 500
500 http://mirrors.digitalocean.com/ubuntu focal-updates/main amd64 Packages
500 http://security.ubuntu.com/ubuntu focal-security/main amd64 Packages
8.0.19-0ubuntu5 500
500 http://mirrors.digitalocean.com/ubuntu focal/main amd64 Packages
5.7.35-1ubuntu18.04 500
500 http://repo.mysql.com/apt/ubuntu bionic/mysql-5.7 amd64 Packages
As you can see MySQl 5.7.31-1ubuntu18.04 is appearing in the list.
Step 3: Install MySQL 5.7 on Ubuntu 20.04
Having found MySQL 5.7 in our system, we are going to install MySQL 5.7 client, MySQL 5.7 server with the below command:
sudo apt install -f mysql-client=5.7* mysql-community-server=5.7* mysql-server=5.7*
Hit the y key to start installation of MySQL 5.7 on Ubuntu 20.04 Linux.
Reading package lists... Done
Building dependency tree
Reading state information... Done
Selected version '5.7.35-1ubuntu18.04' (MySQL:repo.mysql.com [amd64]) for 'mysql-client'
Selected version '5.7.35-1ubuntu18.04' (MySQL:repo.mysql.com [amd64]) for 'mysql-community-server'
Selected version '5.7.35-1ubuntu18.04' (MySQL:repo.mysql.com [amd64]) for 'mysql-server'
The following additional packages will be installed:
libmecab2 libtinfo5 mysql-common mysql-community-client
The following NEW packages will be installed:
libmecab2 libtinfo5 mysql-client mysql-common mysql-community-client mysql-community-server mysql-server
0 upgraded, 7 newly installed, 0 to remove and 90 not upgraded.
Need to get 51.6 MB of archives.
After this operation, 315 MB of additional disk space will be used.
Do you want to continue? [Y/n] y
Enter and re-enter root password when prompted
Step 4: Secure MySQL 5.7 Installation
Run the command below to secure MySQL
sudo mysql_secure_installation
Press Enter. When prompted for password, provide the root password set above.
Answer the prompts as below:
Enter current password for root (enter for none): <Enter password>
VALIDATE PASSWORD PLUGIN can be used to test passwords
and improve security. It checks the strength of password
and allows the users to set only those passwords which are
secure enough. Would you like to setup VALIDATE PASSWORD plugin?
Press y|Y for Yes, any other key for No: Y
There are three levels of password validation policy:
LOW Length >= 8
MEDIUM Length >= 8, numeric, mixed case, and special characters
STRONG Length >= 8, numeric, mixed case, special characters and dictionary
Please enter 0 = LOW, 1 = MEDIUM and 2 = STRONG: 1
Using existing password for root.
Estimated strength of the password: 25
Change the password for root ? ((Press y|Y for Yes, any other key for No) : d
Remove anonymous users? [Y/n] Y
Disallow root login remotely? [Y/n] Y
Remove test database and access to it? [Y/n] Y
Reload privilege tables now? [Y/n] Y
Thanks for using MariaDB!
Step 5: Check MySQL 5.7 version
To confirm the installed version, first, connect to MySQL with the set root password.
$ mysql -u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 6
Server version: 5.7.35 MySQL Community Server (GPL)
Copyright (c) 2000, 2021, 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>
Run the below command to display version
$ SELECT VERSION();
+-----------+
| VERSION() |
+-----------+
| 5.7.35 |
+-----------+
1 row in set (0.00 sec)
Step 6: Create MySQL User (Optional, testing only)
While still connected to MySQL, run the following commands to create a user:
CREATE USER 'user'@'%' IDENTIFIED BY 'MyStrongPass.';
GRANT ALL PRIVILEGES ON * . * TO 'user'@'%';
FLUSH PRIVILEGES;
exit
Step 7: Enable MySQL remote access (Optional)
By default, MySQL remote access is disabled. To enable it we need to edit mysqld.cnf file as below:
sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf
Look for the line ‘bind_address’ and change as below:
# By default we only accept connections from localhost
#bind-address = 127.0.0.1
bind-address = 0.0.0.0
Save the file and restart mysql
sudo systemctl restart mysql
Allow remote connections through the firewall
sudo ufw allow from <remote_IP_address> to any port 3306
sudo ufw enable
To access the database from a remote machine, run the following command:
$ mysql -u user -h database_server_ip -p
You have successfully installed MySQL 5.7 on Ubuntu 20.04.
Best MySQL Udemy Video courses:
- The Ultimate MySQL Bootcamp: Go from SQL Beginner to Expert
- SQL – MySQL for Data Analytics and Business Intelligence
- MySQL, SQL and Stored Procedures from Beginner to Advanced
- SQL for Beginners: Learn SQL using MySQL and Database Design
- The Complete MySQL Developer Course
- MySQL Database Administration: Beginner SQL Database Design
- Learn Database Design with MySQL
Check more interesting Linux guides below: