Resetting a forgotten MySQL root password is a pretty straight forward task to complete assuming you have sudo or root access to the server. It is important to note that by performing this procedure, MySQL will be down till you complete everything. So be sure to do this during a time when it will not impact your business.
First, stop the MySQL service
service mysqld stop # RHEL clones service mysql stop # Ubuntu / Debian distro
Now its time to bring MySQL back up in safe mode. This means we will start MySQL, but we are simply skipping the user privileges table:
sudo mysqld_safe --skip-grant-tables &
Time to log into MySQL and switch to the MySQL database:
mysql -uroot use mysql;
Now reset the root password and flush privileges:
update user set password=PASSWORD("enternewpasswordhere") where User='root'; flush privileges; quit
Once you have completed that, its time to take MySQL out of safe mode and start it back up normally. NOTE: Be sure MySQL is fully stopped before trying to start the service again. You may need to kill -9 the process if its being stubborn.
Stop MySQL:
service mysqld stop # RHEL clones service mysql stop # Ubuntu / Debian distro
Verify that the MySQL process is no longer running. If they are, you may have to kill -9 the process:
ps -waux |grep mysql
Start MySQL back up:
service mysqld start # RHEL clones service mysql start # Ubuntu / Debian distro
Finally, test out logging in to ensure its now working properly:
mysql -uroot -p