Algumas vezes 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, e lá foi ela pra minha incrível base de conhecimentos em arquivo texto indexada pelo grep
. Bem, como tudo evolui, a base de conhecimentos em arquivo texto transformou-se neste blog e mais uma dica fará parte dele agora (não que a solução anterior estivesse ruim, mas infelizmente não era pública).
Para alterar a senha do usuário root siga os seguintes passos:
Linux:
- 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;
Windows XP (com o MySQL rodando como serviço):
- 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.
Update: O Artigo foi adaptado também para apresentar a troca de senhas no ambiente windows conforme sugestão do Carlos Henrique.
Pingback: hebertphp » Alterando a senha do usuário root no MySQL
pow tem como vc me ensinar a fazer um site pq eu fiz um site no programa wamp5 mas nao sei como hospedo e mesmo hospedando o site nao está como eu quero pow tem como me ajuda pra fazer um site igual a esse ?
meu e-mail é
fogo99_3000@hotmail.com
Beleza. Funcionou direitinho. Outra coisa: No Mandriva 2009 a senha vem em branco. E quem sabe disso? Entrei lá e usei o comando de troca que você indicou e deu tudo certo. Obrigado.
Show de bola, valew!!
Pingback: Guia de referência MySQL (Quick Guide) Grátis - De-Grátis!
Eu não consegui fazer, eu n entendii direito!!! Me ajuda !!
Suas dicas me salvaram! Hauehuauh
Muito obrigado
Abraço o/
O comando não deveria ser “UPDATE mysql.user SET Password=PASSWORD(‘nova_senha’) WHERE User=’root’;”?
Pelo menos foi assim que funcionou aqui.
ta la Neto
Ptz cara,
não consegui achar o mysql no services.msc para para-lo
e consequentemente não funcionou o resto.
oque faço?
não funfou veio
@jow o que não funcionou? percebi que no ubuntu 10.10, não consigo mais usar o mysqladmin, tive que usar o update dentro do banco, você já tentou com ele? Qual distro vc está usando?
Não deu certo na troca da senha pois após os comandos:
error 1045:access denied for user ‘oot’@localhost’
Como faço?
Olá claudia,
pela mensagem de erro, acredito que você tenha colocado o nome do usuário errado, pois está como oot.
revise o comando e tente novamente, qualquer coisa é só avisar
po funcionou legal… nem precisou parar os serviços,colocar parametro, nada… so deu o comando direto para acessar o mysql sem senha, e depois dentro do mysql dei o comando padrao para alterar a senha….
valeu…
Preciso sua ajuda, estou os problemas no mysql e phpmyadmin!
meu e-mail é rukassant@yahoo.com.br
Que m**** cara, desse jeito a senha fica em texto puro no banco e não em MD5
boa tarde,
Alguém poderia me ajudar por favor, estou com um problema no meu site, uma mensagem de erro na página agenda, não sou expert em mysql e ali fala algo sobre senha errada, gostaria de uma ajuda sobre como resolver o problema.
Desde já obrigado
o site é http://www.leoquadros.com.br e o problema esta na pagina agenda
Boa tarde, por favor me ajude quero instalar uma impressora mas o sistema pede a senha root e eu não sei qual é, me dê uma dica!
Gilson, vc deve estar querendo a senha do root do Linux, este é do serviço MySQL.
Procura o administrador da máquina. Se for você o administrador vá na tela de terminal e use o sudo ‘comando’ (troque o comando para o que vc está querendo executar)
Aqui não está funcionando!
Estou seguindo exatamente o procedimento… mas após o comando:
mysqladmin -u root password ‘nova_senha’
Recebo o erro:
mysqladmin: connect to server at ‘localhost’ failed
error: ‘Access denied for user ‘root’@'localhost’ <using password: NO)'
quero agradecer muitooo pela ajuda-la com o MySQL 5.5…
obrigadooo..