Knowledge Base

Change User's MySQL Password | Reset MySQL Root Password Guide

This article describes how to reset MySQL's root password in the event you have forgotten it.

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

Rest 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