Hay veces que se pone una contraseña difícil para el usuario root (bien hecho), pero no se apunta en ningún lado (mal hecho) y al final se olvida. Bueno, de momento para solucionar esto en MySQL es posible y fácil.
Para empezar, parar el servicio de MySQL
/etc/init.d/mysql stop
Iniciar mysqld_safe en modo background
/usr/bin/mysqld_safe --skip-grant-tables &
Conectarse a MySQL (no necesita contraseña)
mysql --user=root mysql
Cambiar la contraseña de root
mysql> update user set Password=PASSWORD('<NUEVA_CONTRASEÑA>') WHERE User='root';
Actualizar los privilegios
mysql> flush privileges;
Por último volver a iniciar MySQL
/etc/init.d/mysql start
Si da un error “ERROR 1820 (HY000): You must SET PASSWORD before executing this statement”, hay que hacer lo siguiente
mysql -u root -p
mysql> SET PASSWORD = PASSWORD('<contraseña>');
Fuente:
https://www.debian-administration.org/article/442/Resetting_a_forgotten_MySQL_root_password