How to reset mysql root password on ubuntu

Today, 20th March 2023, Ukraine is still bravely fighting for democratic values, human rights and peace in whole world. Russians ruthlessly kill all civilians in Ukraine including childs and destroy their cities. We are uniting against Putin’s invasion and violence, in support of the people in Ukraine. You can help by donating to Ukrainian's army.

To reset MySQL password You need:

  1. Stop mysqld daemon
  2. Run mysqld from root with --skip-grant-tables mysql turn off safe mode
  3. Connect from another terminal using mysql CLI tool
  4. Perform actual pasword update with update user
  5. Stop mysqld from the first terminal by Ctrl+C and start the daemon again
  6. Test password working with mysql -u root -p command

Tested on 5.7.31-0ubuntu0.18.04.1 and 8.0.*

First stop MySQL daemon:

sudo service mysql stop

NOTE: To make sure mysqld is not running use ps aux | grep mysqld - should not include a process

Run mysqld daemon with --skip-grant-tables:

sudo mysqld --skip-grant-tables

By during this we turned off safe mode in MySQL.

This should block terminal, so open new terminal and check mysql version:

mysql --version

It will show for example:

mysql Ver 8.0.22-0ubuntu0.20.04.3 for Linux on x86_64 ((Ubuntu))

☝Remember it, next action will very depending on 5.7 / 8.0.

Now run unprotected CLI:


You should see:

Reset mysql password CLI view

Perform password reset:

If you have MySQL version 5.7

use mysql;
update user set authentication_string=PASSWORD("NewPassword") where User='root';
update user set plugin="mysql_native_password" where User='root';

flush privileges;

If you have MySQL version 8.x.x

UPDATE mysql.user SET authentication_string=null WHERE User='root';

Now run mysql with root user:

ALTER USER 'root'@'localhost' IDENTIFIED WITH caching_sha2_password BY 'NewPassword';

Now stop mysqld which is running in our first terminal:

sudo killall mysqld

And start daemon in normal mode:

sudo service mysql start

To test that new password works:

sudo mysql -uroot -p

And enter NewPassword.

 reset mysql root password preview

Ivan Borshchov profile picture
Oct 24, 2020
by Ivan Borshchov
Did it help you?
Yes !

Best related