MySQL is an open-source database management system where you can store data in a structured query format. This software was released way back in 1995, about 26 years ago. MySQL’s current stable version is 8.0.25, and you can download it to your machine by visiting the MySQL official website. MySQL is also an integral part of the popular LAMP and LEMP stacks.
This article will show you step-by-step how to install the MySQL database on Ubuntu 20.0.4 operating system. I will use CLI (Command Line Interface) method, so we need to run some specific installation commands to install MySQL on Ubuntu.
Install MySQL On Ubuntu System
Installing MySQL database on an Ubuntu system is very easy. You need to follow the simple steps I am describing. When writing this article, the latest version of MySQL is available for Ubuntu is 8.0.25. If you see this article after a few months of publishing, you have to run the following commands for installing the current latest stable version of MySQL.
- Root Access (sudo) on the system
If you want to create a PHP-based web project, you should have installed the latest PHP and need a web server (Apache or NGiNX). Web server is essential for any environment creation.
audo apt update
sudo apt install mysql-server
Reading package lists... Done Building dependency tree Reading state information... Done The following additional packages will be installed: libcgi-fast-perl libcgi-pm-perl libencode-locale-perl libevent-core-2.1-7 libevent-pthreads-2.1-7 libfcgi-perl libhtml-parser-perl libhtml-tagset-perl libhtml-template-perl libhttp-date-perl libhttp-message-perl libio-html-perl liblwp-mediatypes-perl libmecab2 libtimedate-perl liburi-perl mecab-ipadic mecab-ipadic-utf8 mecab-utils mysql-client-8.0 mysql-client-core-8.0 mysql-common mysql-server-8.0 mysql-server-core-8.0 Suggested packages: libdata-dump-perl libipc-sharedcache-perl libwww-perl mailx tinyca The following NEW packages will be installed: libcgi-fast-perl libcgi-pm-perl libencode-locale-perl libevent-core-2.1-7 libevent-pthreads-2.1-7 libfcgi-perl libhtml-parser-perl libhtml-tagset-perl libhtml-template-perl libhttp-date-perl libhttp-message-perl libio-html-perl liblwp-mediatypes-perl libmecab2 libtimedate-perl liburi-perl mecab-ipadic mecab-ipadic-utf8 mecab-utils mysql-client-8.0 mysql-client-core-8.0 mysql-common mysql-server mysql-server-8.0 mysql-server-core-8.0 0 upgraded, 25 newly installed, 0 to remove and 0 not upgraded. Need to get 31.3 MB of archives. After this operation, 259 MB of additional disk space will be used. Do you want to continue? [Y/n]
When you run the MySQL installation command, the system will prompt you to “Do you want to continue?” you have to press “Y” on the keyboard and hit ENTER to complete the installation process.
Once the installation is done, you have run the following command to check that MySQL database is running or not.
sudo services mysql status
● mysql.service - MySQL Community Server Loaded: loaded (/lib/systemd/system/mysql.service; enabled; vendor preset: enabled) Active: active (running) since Tue 2020-04-28 20:59:52 UTC; 10min ago Main PID: 8617 (mysqld) Status: "Server is operational" ...
When you run the service status command, and it shows, as you can see in the output, MySQL is perfectly running on the system.
Configuring MySQL On Ubuntu
After installing MySQL database, need to secure via password. MySQL comes with a script name
mysql_secure_installation that allows protecting MySQL databases with a password.
[email protected]:~# sudo mysql_secure_installation 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: y
For better security, you should check password strength by choosing one of the password validation policies. So, type “Y” and hit ENTER on the keyboard.
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: 1
Now for password validation, you have to select the policy by entering numbers 0, 1, or 2 for respectively “low,” “medium,” and “strong.”
Please set the password for root here. New password: Re-enter new password:
As you can see from the output result, you have to enter a new password for the MySQL database. After entering the password, hit ENTER on the keyboard.
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) : y
The system will show the password strength score, and if you get less than 50, you should try to improve it or continue with your password by entering “Y” and then hit ENTER on the keyboard.
Do you wish to continue with the password provided?(Press y|Y for Yes, any other key for No) : y 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
The newly installed MySQL database uses anonymous users, so the system will prompt you to remove them, so type “Y” and hit ENTER on the keyboard to continue.
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
MySQL, by default, enabled remote login features on the system, other than the ‘localhost,’ so it will prompt you to disallow the remote login features. You have to type “Y” and hit ENTER on the keyboard to continue.
Remove test database and access to it? (Press y|Y for Yes, any other key for No) : y
The newly installed MySQL application also comes with a test database, and during configuration, the system will prompt you to remove the test database. So, type “Y” and hit the ENTER key on the keyboard.
Reload privilege tables now? (Press y|Y for Yes, any other key for No) : y Success. All done!
In the end, you have to reload the privileges of the newly installed MySQL database. So, “Y” and press the ENTER key on the keyboard, and you will get success! Message.
Login to MySQL CLI as Root
Now, the installation of MySQL is completed, you have to log in to MySQL CLI as root for checks. So, execute the following command to log in to MySQL.
Login to MySQL
sudo mysql -u root -p
When you execute the command, it will prompt you to enter your root password, which we have created earlier.
[email protected]:~# sudo mysql -u root -p Enter password: [enter your root password] Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 11 Server version: 8.0.25-0ubuntu0.20.04.1 (Ubuntu) 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>
mysql> SHOW DATABASES; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | sys | +--------------------+ 4 rows in set (0.21 sec) mysql>
Ultimate Cheatsheet for MySQL
Use the following steps to install MySQL on Ubuntu 20.0.4. If you have any complications to install MySQL, please let me know in the comment box. For further reading, check out how to create databases using CLI.