How to reset MySQL root password if lost
Stop the MySQL daemon:
$ /etc/init.d/mysqld stop
Create a file in your home dir called init, with your prefered shell editor (mine is vim):
$ vi /home/aa/init
Insert the following SQL:
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('NewPassword');
Start MySQL with the mysqld_safe command with the --init-file parameter, pointed at your new init-file.
$ mysqld_safe --init-file=/home/user/mysql-init &
MySQL will now start up in the background, with the init file, changing your root password.
Try to login with your new password:
$ mysql -u root -p NewPassword
Kill the mysqld_safe process, and start MySQL as a service again:
$ /etc/init.d/mysqld start
Your password has been changed.