How to Install MySQL 8.0 in Ubuntu 18.04

Prerequisites

  • A system running Ubuntu 18.04
  • Access to a user account with sudo privileges

Installing MySQL in Ubuntu Using Terminal

This guide assumes you’re installing to a local system. If you need to set up encryption or security certificates for configuring a remote server, please refer to this guide.

Step 1: Enable MySQL Repositories

Your installation of Ubuntu 18.04 may not have access to MySQL repositories.

To download the latest repositories, enter:

wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.11-1_all.deb

The system should respond by reaching out to the server and downloading the .deb configuration file. A progress bar displays to let you know when the download is completed.

Terminal command to install and add the MySQL repository.

Step 2: Install MySQL Repositories

To install and enable MySQL repositories, enter the command:

sudo dpkg -i mysql-apt-config_0.8.11-1_all.deb

The system should respond by launching an installation configuration tool. It will present options to you for which MySQL version you want to install.

MySQL package configuration manager

Leave the default settings and click OK, unless you’re an advanced user and have a specific reason to change them.

Step 3: Refresh the Repositories

Any time you’re installing new packages, you should update repository listings to ensure you are installing the latest release.

In the terminal, enter the following:

sudo apt-get update

The system should take a few moments and refresh the repository cache.

 

Step 4: Install MySQL

To install MySQL on Ubuntu, run the command:

sudo apt-get install mysql-server

Enter your administrator credentials, and the system will install the MySQL server package, client packages, and database common files.

Terminal command and output installing MySQL

The installation will prompt you to enter and confirm a root user and password for the MySQL database.

This password grants total access to the database, so it should be secure and private.

Next, the installer will display a notice about a new authentication method. The newer authentication is more secure but may cause compatibility problems with older MySQL clients.

Click OK, then on the next screen select the authentication method you want to use, then click OK again.

Step 5: Set up MySQL Security

By default, MySQL lacks many basic and important security features. Luckily, it comes with an installation script that walks you through the configuration.

To install the MySQL security script, enter:

sudo mysql_secure_installation

The system will prompt you for the MySQL root password.

Validate Password Plugin

Next, the installer will describe the features of the Validate Password plugin.

This plugin checks to make sure that any new passwords are strong/complex enough.

Type y to enable or n to disable. This is your choice, but enabling this plugin is more secure.

The Validate Password plugin has three settings for passwords:

  • Low: passwords must be at least 8 characters
  • Medium (default): passwords must have 1 uppercase, 1 lowercase, 1 numeric, and 1 special character
  • Strong: compares the password to a dictionary file to prevent brute force attacks
MySQL secure plugin and setting the root password

Change Root Password

Next, the installer will offer you the chance to change the password for root. Type y to change the password, or n to keep the same password you set in Step 4.

If you do change the password, it will need to follow any requirements you configured in Step 5a.

Configure MySQL Security

The system will prompt you for the following security features.

It is recommended that you confirm (type y) all options, unless you have a reason to keep them disabled.

  • Remove anonymous users?
  • Disallow root login remotely?
  • Remove test database and access to it?
  • Reload privilege tables now?
MySQL Security settings in the terminal

Step 6: Start, Stop, or Check Status of MySQL Service

In Ubuntu, the MySQL service should start automatically.

To verify MySQL is running enter the command:

sudo service mysql status
Image of a terminal output displaying that MySQL is active.

To stop the service:

sudo service mysql stop

To start the service:

sudo service mysql start

Step 7: Launch MySQL to Enter Commands

Many MySQL commands can be entered from the MySQL command shell. This is very similar to a terminal window, but the commands are issued directly to the MySQL service.

Launch MySQL shell with the command:

sudo mysql -u root -p

The system should prompt for a password, then give an introduction to the MySQL shell. The command prompt will change to look like this: mysql>

Accessing the MySQL shell in the terminal.