How to reset the MySQL root password

This article describes how to reset the MySQL root password. You may need to do this, for example, if you have forgotten the password.

You must have root access on the server to reset the MySQL root password.

Changing the MySQL root password

To reset the root password for MySQL, follow these steps:

  1. Log in to your account using SSH.
    You must run the commands in the following steps as the root user. Therefore, you can either log in directly as the root user (which is not recommended for security reasons), or use the su or sudo commands to run the commands as the root user.
  2. Stop the MySQL server using the appropriate command for your Linux distribution:
    • For CentOS and Fedora, type:
      service mysqld stop
    • For Debian and Ubuntu, type:

      service mysql stop
  3. Restart the MySQL server with the —skip-grant-tables option. To do this, type the following command:

    mysqld_safe --skip-grant-tables &
    • Make sure you type the ampersand (&) at the end of the command. This runs the command in the background and allows you to type the commands in the following steps.
    • Running MySQL with the —skip-grant-tables option enabled is highly insecure, and should only be done for a brief period while you reset the password. The steps below show you how to stop the mysqld_safe server instance safely and start the MySQL server securely after you have reset the root password.
  4. Log into MySQL using the following command:

    mysql
  5. At the mysql> prompt, reset the password. To do this, type the following command, replacing new-password with the new root password:

    UPDATE mysql.user SET Password=PASSWORD('new-password') WHERE User='root';
  6. At the mysql> prompt, type the following commands:

    FLUSH PRIVILEGES;
    exit;
    
  7. Stop the MySQL server using the following command. You will be prompted to enter the new MySQL root password before the MySQL server shuts down:

    mysqladmin -u root -p shutdown
  8. Start the MySQL server normally. To do this, type the appropriate command for your Linux distribution:

    • For CentOS and Fedora, type:
      service mysqld start
    • For Debian and Ubuntu, type:

      service mysql start
Get MySQL Hosting

Article Details

Did you find this article helpful? Then you'll love our support. Experience the A2 Hosting difference today and get a pre-secured, pre-optimized website. Check out our web hosting plans today.

We use cookies to personalize the website for you and to analyze the use of our website. You consent to this by clicking on "I consent" or by continuing your use of this website. Further information about cookies can be found in our Privacy Policy.