Olá, já me deparei com a dificuldade de tentar me lembrar qual
era mesmo a senha que eu havia definido para o usuário root nos
servidores com MySQL, depois de algumas vezes decidi guardar esta dica
em algum lugar que me facilitasse recuperar quando necessário.
- Parar o serviço do MySQL (service mysqld stop, /etc/init.d/mysqld stop, matando o processo – conforme sua distribuição);
- Reiniciar o mysql com a opção –skip-grant-tables (você poderá utilizá-la ao iniciar o mysqld manuamente ou colocando-a no arquivo de init)
- 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;
No Windows siga os seguintes passos:
- Entrar nos serviços do windows (Iniciar > Executar > services.msc);
- Procure pelo MySQL, clique com o botão direito sobre ele e vá em propriedades;
- Pare o serviço (clicando sobre o botão parar);
- Insira no campo “Parâmetros de inicialização” o parâmetro –skip-grant-tables e clique no botão iniciar e em seguida botão Ok;
- Execute o cmd (Iniciar > Executar > cmd) , entre no diretório de binários do MySQL (cd c:\arquivos de programas\mysql\bin (ou onde estiver instalado));
- 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. 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.