Artigos > Redefinindo a senha de root do MySQL

MySQL - Redefinindo senha de root do MySQL

Se você perdeu ou já não possuía a senha de root do seu MySQL, precisará redefini-la. A seguir, veremos como o fazer.

Observações 1 – Lembrando que isso gera um downtime, pois será preciso reiniciar o MySQL. Portanto, atente-se ao tempo de indisponibilidade.
2 – Caso possua aplicações que façam conexão com o banco, antes de trocar a senha, lembre-se; Precisará redefinir sua senha na string de conexão da aplicação. Se não o fizer, sua aplicação ficará fora do ar por não conseguir logar no banco.

Mãos à obra:

Primeiro, abra o daemon do MySQL no init.d. Vamos inserir um “–skip-grant-tables” nele:

vim /etc/init.d/mysql

Insira a variável na linha 330 onde o binário do MySQL é startado. Ficará assim:

$bindir/mysqld_safe --datadir=$datadir  --pid-file=$server_pid_file $other_args --skip-grant-tables >/dev/null 2>&1

Agora reinicie o seu MySQL:

/etc/init.d/mysql restart
Shutting down MySQL.......... SUCCESS! 
Starting MySQL. SUCCESS!

Logue no MySQL acessando a base de dados “mysql”. Veja que não é necessário informar a senha:

mysql -u root mysql

Redefina a senha com a seguinte query:

UPDATE user SET Password=PASSWORD('informe_sua_nova_senha') WHERE User='root';
Dica No artigo “Segurança de Senhas” (2009) dei algumas dicas sobre senhas. São só uns 3 minutos de leitura.

Recarregue os privilégios:

FLUSH PRIVILEGES;

Pronto. Agora retire o “–skip-grant-tables” e reinicie o MySQL novamente.

A seguir, teste sua senha logando no MySQL:

mysql -u root -p
Enter password:

Boa sorte.

Observação Não faça muitos reinícios do MySQL principalmente se for um ambiente de produção. Seus dados podem corromper.
No caso do ambiente ser de produção, sugiro parar seu Webserver para não deixar chegar requisições no banco.

Deixe uma resposta

This site uses Akismet to reduce spam. Learn how your comment data is processed.