First things first. Log in as root and stop the mysql daemon. Now lets start up the mysql daemon and skip the grant tables which store the passwords.

mysqld_safe –skip-grant-tables

You should see mysqld start up successfully. If not, well you have bigger issues. Now you should be able to connect to mysql without a password.

mysql –user=root mysql

update user set Password=PASSWORD(‘new-password’) where user=’root’;
flush privileges;

Now kill your running mysqld, then restart it normally. You should be good to go. Try not to forget your password again.