Resetting a forgotten MySQL server passwords

Change MySQL password for other users

To change a normal user password you need to type:

mysqladmin -u user-name -p old password newpass

Resetting forgotten root password

Step # 1 : Stop the MySQL service:

/etc/init.d/mysql stop

Output:

Stopping MySQL database server: mysqld.

 

Step # 2: Start the MySQL server w/o password:

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 the MySQL server using the MySQL client:

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.

Step # 4: Set a new MySQL root user password:

mysql -u root
mysq use mysql;
mysql update user set password=PASSWORD("NEW-ROOT-PASSWORD") where User='root';
mysql flush privileges;
mysql quit

 

Step # 5: Stop the MySQL server:

/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

Start the MySQL server and test it:

/etc/init.d/mysql start
mysql -u root -p