How To Install MySQL on Ubuntu 20.04

Published on  

9 min read

Looking for other version?

Choose a different version or distribution.

How To Install MySQL on Ubuntu

Learn how to properly install and configure MySQL on Ubuntu 20.04 with this comprehensive guide. Improve the performance and security of your web development projects with step-by-step instructions and tips.

Introduction

Are you looking to install MySQL on your Ubuntu 20.04 system? If so, you've come to the right place. MySQL is one of the most popular relational database management systems (RDBMS) used in web development, and it's essential to have a properly installed and configured MySQL server for your web applications to run smoothly.

In this blog post, we'll walk you through the process of installing MySQL on Ubuntu 20.04, step by step. We'll cover everything from updating the Ubuntu package repository to configuring MySQL for improved performance. By the end of this guide, you'll have a fully functional MySQL server running on your Ubuntu 20.04 system.

Why is MySQL important in web development?

MySQL is widely used in web development for storing and retrieving data. It's an open-source RDBMS that is highly scalable, reliable, and secure. MySQL is used by popular web applications like WordPress, Drupal, and Joomla.

Without a proper installation of MySQL, your web application's database could be at risk of security breaches, data loss, and poor performance. A well-configured MySQL server is essential for ensuring the smooth functioning of your web application and enhancing its overall performance.

Purpose of this blog post

The purpose of this blog post is to guide you through the process of installing MySQL on Ubuntu 20.04. We'll cover the prerequisites for installation, the actual installation process, security configuration, verification of the installation, and configuration for improved performance. We'll also provide some additional resources for further reading.

Prerequisites for installation

Before we begin, there are a few prerequisites that you need to meet for a successful installation of MySQL on Ubuntu 20.04.

  • A running instance of Ubuntu 20.04
  • Access to the terminal or command-line interface
  • Sudo privileges or access to the root user account

If you meet these prerequisites, you're ready to move on to the next section, where we'll begin the installation process.

Installation

Updating the Ubuntu package repository

Before we can install MySQL on Ubuntu 20.04, we need to update the package repository to ensure that we have access to the latest version of MySQL.

To do this, open the terminal and run the following command:

sudo apt update

This will update the package repository and ensure that we have access to the latest version of MySQL.

Installation of MySQL Server

Now that we've updated the package repository, we're ready to install MySQL Server. To do this, run the following command in the terminal:

sudo apt install mysql-server

This will install the latest version of MySQL Server on your Ubuntu 20.04 system.

Security Configuration of MySQL Server

After installing MySQL Server, it's important to secure it to prevent unauthorized access and ensure the safety of your data. We'll cover three important security configurations in this section:

1. Setting a root password for MySQL

By default, MySQL Server does not have a root password set up, which leaves it vulnerable to unauthorized access. To set a root password for MySQL, run the following command:

sudo mysql_secure_installation

This will prompt you to set a root password and perform other security configurations. Follow the prompts to set a strong password and secure your MySQL Server.

2. Disabling remote root access

Remote root access allows anyone to access your MySQL Server from anywhere, which is a significant security risk. To disable remote root access, open the MySQL configuration file by running the following command:

sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf

Find the line that says bind-address = 127.0.0.1 and uncomment it by removing the # symbol at the beginning of the line. This will ensure that MySQL only listens for connections from the local machine.

Save and exit the file, then restart MySQL Server by running the following command:

sudo systemctl restart mysql

3. Removing anonymous user accounts

MySQL Server creates anonymous user accounts by default, which can be exploited to gain unauthorized access to your data. To remove anonymous user accounts, open the MySQL shell by running the following command:

sudo mysql

Then, run the following command to list all the users in the MySQL Server:

SELECT user,authentication_string,plugin,host FROM mysql.user;

Look for any users with the username % (which represents all hosts) and the authentication string '' (which represents no password). To remove these users, run the following command:

DELETE FROM mysql.user WHERE user='' AND host='%';

Then, run the following command to reload the privilege tables:

FLUSH PRIVILEGES;

This will remove any anonymous user accounts and improve the security of your MySQL Server.

Verifying MySQL Installation

Now that we've installed and secured MySQL Server, it's important to verify that it's working correctly. To do this, run the following command in the terminal:

systemctl status mysql.service

This will show you the status of the MySQL service and ensure that it's running correctly.

In the next section, we'll cover how to configure MySQL for improved performance.

Configuration

Now that you have successfully installed MySQL on Ubuntu 20.04, it's time to configure it for optimal performance and create a new MySQL user and database.

Configuring MySQL for Improved Performance

By default, MySQL is configured to work on most systems, but you may want to adjust some settings to get the most out of your server. Here's how:

1. Adjusting the MySQL Configuration File

MySQL's configuration file is located at /etc/mysql/mysql.conf.d/mysqld.cnf. You can open it with a text editor such as nano:

sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf

This file contains many settings that control MySQL's behavior. Be careful when changing them as some settings may affect MySQL's security, stability, or performance.

Some of the settings you may want to consider adjusting include:

  • max_connections: This sets the maximum number of concurrent connections to MySQL. You may want to increase it if you expect many simultaneous connections.
  • innodb_buffer_pool_size: This sets the size of the memory buffer that InnoDB uses to cache data and indexes. Increasing this value can improve read performance.
  • innodb_log_file_size: This sets the size of the redo log files that InnoDB uses to recover from crashes. Increasing this value can improve write performance.

Here's an example of adjusting the innodb_buffer_pool_size to 1GB and the max_connections to 100:

[mysqld]
innodb_buffer_pool_size = 1G
max_connections = 100

After making changes, save the file and exit.

2. Restarting the MySQL Service

After you have made changes to the configuration file, you need to restart the MySQL service to apply them:

sudo systemctl restart mysql

Creating a New MySQL User and Database

In most cases, you will want to create a new MySQL user and database for your web application. This will allow you to keep your data separate from other applications and users on the server.

Here's how to do it:

1. Log in to MySQL as the root user:

If you have sudo access, you can simply login to MySQL console by entering below command:

sudo mysql

Or, you can login using traditional command:

sudo mysql -u root -p

Enter the MySQL user root's password that you set during the installation.

2. Create a new database:

CREATE DATABASE dbname;

Replace dbname with the name of your database.

3. Create a new user:

CREATE USER 'username'@'localhost' IDENTIFIED BY 'password';

Replace username and password with your desired username and password.

4. Grant the user permission to access the database:

GRANT ALL PRIVILEGES ON dbname.* TO 'username'@'localhost';

Replace dbname and username with the appropriate values.

5. Flush the privileges to apply the changes:

FLUSH PRIVILEGES;

That's it! You now have a new MySQL user and database that you can use for your web application.

Conclusion

In this article, we have walked through the process of installing MySQL on Ubuntu 20.04. We have also covered the security configuration of MySQL, as well as configuring it for improved performance. Lastly, we have shown you how to create a new MySQL user and database.

Proper installation and configuration of MySQL are crucial for web development. With this guide, you should now have a solid foundation for using MySQL on Ubuntu 20.04.

If you want to learn more about MySQL, be sure to check out the official MySQL documentation. Additionally, if you have any questions or feedback, feel free to leave a comment below.

About the Author

Rexposed Staff

Was this helpful?