Recuperar Senha do Root no MySQL

1. Parar o serviço do MySQL (service mysqld stop, /etc/init.d/mysql stop, matando o processo ou conforme sua distribuição);

2. Reiniciar o mysql com a opção –skip-grant-tables (você poderá utilizá-la ao iniciar o mysql manuamente(recomendado) ou colocando-a no arquivo de init)

3. Alterar a senha do usuário root com o comando:

     # mysqladmin -u root password 'nova_senha'
     # mysqladmin flush-privileges
     você pode alterar a senha também com o comando:
     # mysql -u root mysql
     mysql> UPDATE user SET Password=PASSWORD('nova_senha') WHERE User='root';
     mysql> FLUSH PRIVILEGES;

O parâmetro –skip-grant-tables desabilita no servidor o uso do sistema de privilégios, por isso é recomendado que o comando seja executado manualmente. Com isso todos os usuários terão acesso a todos os bancos de dados. Ao executar o comando Flush privileges, o servidor retorna a utilizar seu sistema de privilégios, mantendo a segurança original do serviço.

Agora se você adicionou o parâmetro –skip-grant-tables no arquivo de init, não se esqueca de remové-lo de lá, para evitar que na próxima reinicialização do serviço ele fique vulnerável. Caso seu MySQL esteja no Windows, execute os 4 primeiros passos novamente removendo o parâmetro passado na inicialização.