How to Reset MySQL root password in Ubuntu - TechvBlogs

How to Reset MySQL root password in Ubuntu

Passwords are hard to remember, so if you have forgotten the MySQL root password, there is a way to change it. How to change MySQL root password in Ubuntu is explained in this blog.


Smit Pipaliya - Author - TechvBlogs
Smit Pipaliya
 

10 months ago

Passwords are hard to remember, so if you have forgotten the MySQL root password, luckily, there is a way to change it. This post has been written for you, and by the end of this post, you will have successfully changed the password of MySQL.

This blog demonstrates how to reset the root password for MySQL and MariaDB databases installed with the apt package manager on Ubuntu. The procedure for changing the root password differs depending on whether you have MySQL installed and the default systemd configuration that ships with the distribution or packages from other vendors.

Before moving on to the answer, it is assumed that you have the latest version of the MySQL database for Ubuntu. This blog will offer an easy-to-follow guide for changing your MySQL root passwords in Ubuntu. Therefore, without wasting time, let's begin.

1. Check MySQL Version

First, check the version of your MySQL because this post contains the solution of changing the root password on version 8 or higher. If the version of your MySQL is lower than 8, then the answer will be different. Run the following command:

#! /bin/bash
mysql --version

MySQL Version Output:

mysql  Ver 8.0.27-0ubuntu0.20.04.1 for Linux on x86_64 ((Ubuntu))

Read Also: How to Deploy Laravel Project with Apache on Ubuntu

2. Stop MySQL Server

To change the MySQL root password, you first need to shut down the MySQL server, run the following command:

#! /bin/bash
sudo systemctl stop mysql.service

 Check the status of the MySQL server to verify. Run the following command:

#! /bin/bash
sudo systemctl status mysql.service
● mysql.service - MySQL Community Server
     Loaded: loaded (/lib/systemd/system/mysql.service; enabled; vendor preset: enabled)
     Active: inactive (dead) since Mon 2022-01-10 13:50:04 IST; 29s ago
    Process: 1163 ExecStartPre=/usr/share/mysql/mysql-systemd-start pre (code=exited, status=0/SUCCESS)
    Process: 1737 ExecStart=/usr/sbin/mysqld (code=exited, status=0/SUCCESS)
   Main PID: 1737 (code=exited, status=0/SUCCESS)
     Status: "Server shutdown complete"

Jan 10 10:32:38 smit-Latitude-E5470 systemd[1]: Starting MySQL Community Server...
Jan 10 10:32:52 smit-Latitude-E5470 systemd[1]: Started MySQL Community Server.
Jan 10 13:50:01 smit-Latitude-E5470 systemd[1]: Stopping MySQL Community Server...
Jan 10 13:50:04 smit-Latitude-E5470 systemd[1]: mysql.service: Succeeded.
Jan 10 13:50:04 smit-Latitude-E5470 systemd[1]: Stopped MySQL Community Server.

3. Skip Grant Tables & Networking

To start the MySQL server without granting the tables and networking check, set the environment variable MYSQLD_OPTS, which MySQL uses on startup. Run the following command:

#! /bin/bash
sudo systemctl set-environment MYSQLD_OPTS="--skip-networking --skip-grant-tables"

Alright, the environment variable is a set, and we can log in to the MySQL shell providing no password.

4. Start MySQL Service

After setting the environment variable MYSQLD_OPTS, start the MySQL service. Run the following command:

#! /bin/bash
sudo systemctl start mysql.service

Confirm the status of the MySQL service if it is running:

● mysql.service - MySQL Community Server
     Loaded: loaded (/lib/systemd/system/mysql.service; enabled; vendor preset: enabled)
     Active: active (running) since Mon 2022-01-10 14:31:53 IST; 1min 45s ago
    Process: 29956 ExecStartPre=/usr/share/mysql/mysql-systemd-start pre (code=exited, status=0/SUCCESS)
   Main PID: 29983 (mysqld)
     Status: "Server is operational"
      Tasks: 39 (limit: 9350)
     Memory: 441.3M
     CGroup: /system.slice/mysql.service
             └─29983 /usr/sbin/mysqld

Jan 10 14:31:50 smit-Latitude-E5470 systemd[1]: Starting MySQL Community Server...
Jan 10 14:31:53 smit-Latitude-E5470 systemd[1]: Started MySQL Community Server.

5. Login To MySQL Shell

At this stage, we can access the MySQL database without a password:

#! /bin/bash
sudo mysql -u root
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 20
Server version: 8.0.27-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>

Read Also: Top Laravel Interview Questions & Answers 2022

6. Reset Root Password

Now, flush the privileges first. Run the following command:

#! /bin/bash
mysql> flush privileges;

How to Reset MySQL root password in Ubuntu - TechvBlogs

Select the MySQL database. Run the following command:

#! /bin/bash
mysql> use mysql;

How to Reset MySQL root password in Ubuntu - TechvBlogs

And set the new password for the root user, run the following command:

#! /bin/bash
mysql> ALTER USER  'root'@'localhost' IDENTIFIED BY '(YOUR NEW PASSWORD)';

 How to Reset MySQL root password in Ubuntu - TechvBlogs

At the place of (YOUR NEW PASSWORD) provide your new password. After successfully changing the MySQL root password, log out from the MySQL shell.

#! /bin/bash
mysql> quit;

How to Reset MySQL root password in Ubuntu - TechvBlogs

7. Kill All MySQL Processes and Restart MySQL Service

First, kill all the processes of MySQL before even restarting the MySQL server.

#! /bin/bash
sudo killall -u mysql

And the restart the MySQL server, run the following command:

#! /bin/bash
sudo systemctl restart mysql.service

8. Login MySQL With New Password

If all goes well, you should now be able to login to your MySQL database with a root password:

#! /bin/bash
sudo mysql -u root -p

How to Reset MySQL root password in Ubuntu - TechvBlogs

Thank you for reading this blog.

Read Also: How to Install Zoom on Ubuntu 20.04

If you want to manage your VPS / VM Server without touching the command line go and  Checkout this linkServerAvatar allows you to quickly set up WordPress or Custom PHP websites on VPS / VM in a  matter of minutes.  You can host multiple websites on a single VPS / VM, configure SSL certificates, and monitor the health of your server without ever touching the command line interface.

If you have any queries or doubts about this topic please feel free to contact us. We will try to reach you.

Comments (0)

ServerAvatar
Multiple sites on a single VPS/VM/Server Deploy PHP sites on cloud in minutes, simple as that!
ServerAvatar
Generate Free SSL Certificate - SSLForWeb

Generate Free SSL Certificate

  • 90-Day Certificates
  • SSL Monitoring
  • Wildcard Certificates
  • Multiple Domains
  • Certificate Management
  • Expiration Reminders

Comment


Note: All Input Fields are required.