Como recuperar senha de root do MySQL

Em um servidor CentOS release 6.6 (Final), rodando o serviço MySQL, precisei recentemente alterar a senha de root, pois havia esquecido da mesma. Transcrevo aqui então o processo para ajudar alguém que passe pelo mesmo problema e precise alterar a senha de root do MySQL:

  • O primeiro passo é pararmos o serviço MySQL:
/etc/init.d/mysqld stop
  • Depois devemos iniciar o MySQL em modo de segurança, para que possamos ter acesso para alterar a senha:
mysqld_safe --ckip-grant-tables --skip-networking &
  1. O parâmetro --skip-grant-tables, server para que o MySQL inicie sem verificar as permissões de usuários, dando permissão total a todos.
  2. O segundo parâmetro --skip-networking, serve para que nenhuma conexão TCP/IP seja aceita, evitando que alguém se aproveite deste tempo para “destruir” seu banco de dados.
  • Agora, com o banco desprotegido, vamos conectar e alterar a senha do uduário que queremos recuperar. Neste exemplo, vou usar o próprio root:
mysql -u root
  • Uma vez dentro do MySQL, alteraremos a senha, recarregaremos todos os privilégios e poderemos sair:
UPDATE mysql.user SET password=PASSWORD('new_password') WHERE user='root';
flush privileges/
quit;
  • Agora basta reiniciar o serviço MySQL e fazer o teste de login com a nova senha:
/etc/init.d/mysqld restart
mysql -u root -p
comments powered by Disqus