Linux – Trocar senha de root do Mysql sabendo ou não a senha antiga

Hoje cheguei mais cedo da faculdade, pra falar a verdade coisa de minutos atrás e voltei a programar uma pagina que estou fazendo para pode acessar remoto, ela terá de inicio uma pagina de login para entrar só acessar o conteúdo quem for cadastrado, usarei para faculdade e outros fins profissionais.

Estou usando o Mysql como Banco de Dados e acabei esquecendo a senha do root eu sabia trocar a senha sabendo a atual agora cadastrar uma nova precisei do bom e velho google então vamos aos dois casos:

Trocando a senha de root 1

Nesse caso eu suponho que você saiba a senha do root e queira apenas trocar para fortalecer a segurança do banco, lembrando que você pode fazer isso mais fácil utilizando phpmyadmin, mas eu queria fazer no terminal ver na mão como seria, então vamos lá:

Abra um terminal do Linux como super-usuario # e digite:

Como na imagem abaixo:

Sendo assim estaremos conectando com usuário root (-u root)  na DataBase do mysql (-D mysql) e entrando com a senha antiga (-p).

Depois entre com a sintaxe SQL:

UPDATE user SET Password=(‘123456′) WHERE User=’root’;

Correção da sintaxe para alterar a senha (01/07/2013), pois na imagem acima esta correto houve um equivoco na sintaxe acima, enviado por um leitor a observação.

UPDATE user SET Password=PASSWORD(‘123456′) WHERE User=’root’;

FLUSH PRIVILEGES;

Pronto! Saia do mysql com exit e logue com a nova senha.

Trocando a senha de root 2

Agora sim. O caso um pouco mais chato, cadastrar uma senha do root quando não se sabe a senha do mesmo, neste caso não tem como acessarmos o mysql então teremos que derrubar o serviço, utilize:

#/etc/init.d/mysql stop

Agora vamos iniciar o mysql só que sem ler a tabela de permissões:

#/usr/bin/mysqld_safe –skip-grant-tables &

Em seguida:

#/usr/bin/mysql

O importante é usar –skip-grant-tables e no meu caso usei /usr/bin/, mas dependendo da sua distribuição Linux pode ser /usr/local/bin/ então use de acordo com a sua distro.

Agora prosseguindo digite:

use mysql;

Para conectarmos a base de dados mysql.

Agora a sintaxe para alterar a senha é a mesma do caso anterior:

UPDATE user SET Password=(‘123456′) WHERE User=’root’;

UPDATE user SET Password=PASSWORD(‘123456′) WHERE User=’root’;

Reparem que propositalmente eu colocar o USER na primeira tentativa como maiusculo, e deu erro, pois é de acordo com o nome da tabela do banco mysql no caso, e lembre-se é case-sensitive.

Agora saia do mysql com exit.

Vamos restartar o serviço do mysql para voltar ao normal.

#/etc/init.d/mysql restart

Em seguida teste agora com a nova senha:

#mysql -u root -p

Caso queira conectar direto em alguma DataBase utilize -D DataBase:

#mysql -u root -D prog1000 -p

Bom vimos então como mudar a senha do root do mysql sabendo ou não a senha do root.

Espero ter sido claro e de fácil compreensão.

Até a próxima!

Share Button

CC BY-NC-SA 4.0 Linux – Trocar senha de root do Mysql sabendo ou não a senha antiga by Cleiton Bueno is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.

  • eduardo garcia

    tks,

    ajudou muito

  • Obrigado

    Gostaria de ‘agradecer’ por colocar o comando errado no post!

    UPDATE user SET Password=(’123456′) WHERE User=’root’;

    o correto é

    UPDATE user SET Password=PASSWORD(’123456′) WHERE User=’root’;

    Se alguém fizer o comando errado, como eu fiz, vai perder o acesso ao root! Excelente!

    • Você tem razão, no print screen que foi dado e inserido no POST esta correto porém na sintaxe informada esta errado, será corrigido. Uma pena não ter informado o nome seria informado no post sobre a observação.

      Grato.

    • Sobre fazer da outra maneira, poderia perder o acesso mas parando o banco e realizando corretamente você teria o acesso em mãos, pois estaria realizando direto no banco usando o daemon do proprio MySQL.

  • Excelente…

  • Alexander Vinson

    Adicionando.
    Apos sair da janela mysql eh bom fechar o mysql_safe com o comando
    mysqladmin shutdown

  • Amauri

    Boa tarde!

    Seu post me ajudou muito a resolver um grande problema!

    Obrigado!