Method 1: Use the SET PASSWORD command
mysql -u root
mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('newpass');
Method 2: Using mysqladmin
mysqladmin -u root password "newpass"
If root has already set a password, use the following method
mysqladmin -u root password oldpass "newpass"
Method 3: Edit the user table directly with UPDATE
mysql -u root
mysql> use mysql;
mysql> UPDATE user SET Password = PASSWORD('newpass') WHERE user = 'root';
mysql> FLUSH PRIVILEGES;
When you lose the root password, you can do this
mysqld_safe --skip-grant-tables&
mysql -u root mysql
mysql> UPDATE user SET password=PASSWORD("new password") WHERE user='root';
mysql> FLUSH PRIVILEGES;