You can reset the MySQL root password using the following command if know the current root password
root@amaziah [~]#mysqladmin -u root -p 'current password' password 'new password'
If you don't know the root password then, follow the below steps
First stop MySQL server,
root@amaziah [~]#service mysql stop
OR
root@amaziah [~]#/etc/init.d/mysql stop
Then edit the following file,
root@amaziah [~]#vi /etc/rc.d/init.d/mysql
edit the line,
$bindir/mysqld_safe --datadir=$datadir --pid-file=$server_pid_file $other_args >/dev/null 2>&1 &
To
$bindir/mysqld_safe --skip-grant-tables --datadir=$datadir --pid-file=$server_pid_file $other_args >/dev/null 2>&1 &
Then start the MySQL server,
root@amaziah [~]#/etc/init.d/mysql start
Once the MySQL server is started, you can login to MySQL as root user without password
root@amaziah [~]#mysql -u root mysql
Then enter the following command to set new password for root,
mysql>UPDATE user SET password=PASSWORD ('new password') WHERE user='root';
mysql>flush privileges ;
mysql>quit
Now you have to stop the MySQL server and edit /etc/rc.d/init.d/mysql and change it to as it was before. ie. change the line
$bindir/mysqld_safe --skip-grant-tables --datadir=$datadir --pid-file=$server_pid_file $other_args >/dev/null 2>&1 &
To
$bindir/mysqld_safe --datadir=$datadir --pid-file=$server_pid_file $other_args >/dev/null 2>&1 &
Once this has been done, start the MySQL server.
root@amaziah [~]#/etc/init.d/mysql start
Done. Now you can login to MySQL using the new password that you have set.