How to reset the MySQL root password in CentOS via SSH
This tutorial describes how to reset the MySQL root password via SSH command. You may need to do this, if you have forgotten the password and need access for Webmin, Virtualmin or phpmyadmin
Resetting the MySQL root password
To reset the root password for MySQL, follow these steps:
- 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.
- Stop the MySQL server using the appropriate command for your Linux distribution:
- For CentOS and Fedora, type:
service mysqld stop
- For CentOS and Fedora, type:
- 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.
- Log into MySQL using the following command:
mysql
- 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';
- At the mysql> prompt, type the following commands:
FLUSH PRIVILEGES; exit;
- 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
- 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 CentOS and Fedora, type: