How to Install MySQL on Ubuntu 20.04. MySQL is the most popular open-source relational database management system which is supported by a huge and active community of open source developers. It is available on over 20 platforms and operating systems including Linux, Unix, Mac and Windows.
In this guide you are going to learn how to install and secure MySQL on Ubuntu 20.04.
If you wish to have a well optimized external MySQL server for your applications you can try these.
This setup is tested on Google Cloud Platform, so it works fine on any cloud services like AWS, Azure or any VPS or Dedicated servers.
Prerequisites
Compute Engine setup, Setting up Compute Engine Instance with Ubuntu 20.04.
Install MySQL 8
Start by updating the packages to the latest version available.
sudo apt update
sudo apt upgrade
In Ubuntu 20.04 MySQL 8 is included by default in the Focal Fossa repositories, so you can install it easily using the apt install
command.
sudo apt install mysql-server
Once the installation is completed, the MySQL service will start automatically. To verify that the MySQL server is running, type:
sudo service mysql status
The output should show that the service is enabled and running:
● mysql.service - MySQL Community Server
Loaded: loaded (/lib/systemd/system/mysql.service; enabled; vendor preset: enabled)
Active: active (running) since Tue 2020-05-05 07:13:18 UTC; 1min 4s ago
Main PID: 3333 (mysqld)
Status: "Server is operational"
Tasks: 38 (limit: 2010)
Memory: 322.9M
CGroup: /system.slice/mysql.service
└─3333 /usr/sbin/mysqld
Securing MySQL
MySQL installation comes with a script named mysql_secure_installation
that allows you to easily improve the MySQL server security.
sudo mysql_secure_installation
You will be asked to configure the VALIDATE PASSWORD PLUGIN
which is used to test the strength of the MySQL users passwords and improve the security.
Securing the MySQL server deployment.
Connecting to MySQL using a blank password.
VALIDATE PASSWORD COMPONENT 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 component?
Press y|Y for Yes, any other key for No:
Press y
if you want to set up the validate password plugin or any other key to move to the next step.
There are three levels of password validation policy, low, medium, and strong.
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 file
Please enter 0 = LOW, 1 = MEDIUM and 2 = STRONG:
Enter 2 for strong password validation.
On the next prompt, you will be asked to set a password for the MySQL root user.
Please set the password for root here.
If you set up the validate password plugin, the script will show you the strength of your new password. Type y
to confirm the password.
Estimated strength of the password: 100
Do you wish to continue with the password provided?(Press y|Y for Yes, any other key for No) :
Next, you’ll be asked to remove the anonymous user, restrict root user access to the local machine, remove the test database, and reload privilege tables. You should answer y
to all questions.
Login to MySQL as root
In MySQL 8.0, the root user is authenticated by the auth_socket
plugin by default.
The auth_socket
plugin authenticates users that connect from the localhost
through the Unix socket file. This means that you can’t authenticate as root by providing a password.
To log in to the MySQL server as the root user, execute the following command.
sudo mysql
You will be presented with the MySQL shell, as shown below:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 10
Server version: 8.0.20-0ubuntu0.20.04.1 (Ubuntu)
Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved.
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>
Now you can change the authentication type which helps you to login to your MySQL server as root using an external program such as phpMyAdmin.
You can do this using two methods listed below.
First Option
This is the recommended option by creating a new dedicated administrative user with access to all databases:
CREATE USER 'admin'@'localhost' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON *.* TO 'admin'@'localhost' WITH GRANT OPTION;
FLUSH PRIVILEGES;
Second Option
You can change the authentication method from auth_socket
to mysql_native_password
. You can do that by running the following command:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'your_password';
FLUSH PRIVILEGES;
That’s it. Great!
Prepare yourself for a role working as an Information Technology Professional with Linux operating system
Conclusion
Now you have learned how to install and secure MySQL in Ubuntu 20.04. You have also learned to enable password based authentication.
Thanks for your time. If you face any problem or any feedback, please leave a comment below.