How to reset forgotten mysql root password

/etc/init.d/mysql stop
mysqld_safe --skip-grant-tables &
mysql -u root

mysql> USE mysql;
mysql> UPDATE user SET password=PASSWORD("newrootpassword") WHERE user='root';
mysql> FLUSH privileges;
mysql> quit

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