How to Reset MySQL Password
If you have forgotten your MySQL root password, follow these steps to reset it:
Step #1: Stop MySQL Service
First, stop the MySQL service with the following command:
/etc/init.d/mysql stop
Output:
Stopping MySQL database server: mysqld.
Step #2: Start MySQL Without Password
Start MySQL without loading the grant tables (which hold user privileges). This allows you to reset the password without needing the old one:
mysqld_safe --skip-grant-tables &
Output:
[1] 5988
Starting mysqld daemon with databases from /var/lib/mysql
mysqld_safe[6025]: started
Step #3: Connect to MySQL Server Using the MySQL Client
Now, connect to the MySQL server as the root user:
mysql -u root
Output:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 1 to server version: 4.1.15-Debian_1-log
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql>
Step #4: Set a New MySQL Root Password
Switch to the mysql
database and update the root password:
mysql> use mysql;
mysql> update user set password=PASSWORD("NEW-ROOT-PASSWORD") where User='root';
mysql> flush privileges;
mysql> quit;
Step #5: Stop MySQL Server
Stop the MySQL service again:
/etc/init.d/mysql stop
Output:
Stopping MySQL database server: mysqld
STOPPING server from pid file /var/run/mysqld/mysqld.pid
mysqld_safe[6186]: ended
[1]+ Done mysqld_safe --skip-grant-tables
Step #6: Start MySQL Server and Test the New Password
Finally, start MySQL and test the new root password:
/etc/init.d/mysql start
Then, connect to MySQL with your new root password:
mysql -u root -p