você está aqui: Home  → Colunistas  →  Bancos de Dados Livres

Recuperação da senha de root em MySQL

Colaboração: Ronie Ramos de Oliveira

Data de Publicação: 30 de Setembro de 2009

Perdi minha senha de root do BD Mysql, entrei no site da mysql e segui todas as informacoes pra recuperar a senha, mas não estou conseguindo. Quando subo o Mysqld com a opção -Sg (Skip Grant Tables), o sistema volta a funcionar, mas acredito que essa não seja a melhor forma. Já tentei dar Flush privileges, mas nada feito. (Pergunta enviada por Clóvis Tristão)

Resposta por Ronie Ramos de Oliveira

Deveria funcionar com o --skip-grant-tables

Experimente especificar a diretiva --skip-grant-tables no seu arquivo de configuração de ativação do mysqld.

Exemplo:

  • Pare o serviço mysqld
  • Tente ativá-lo novamente com a opção --skip-grant-tables
$bindir/safe_mysqld --datadir=$datadir --pid-file=$pid_file --log-bin --skip-grant-tables &
  • Forneça uma uma nova senha para o usuário root
  • Pare novamente o serviço mysqld
  • Ative-o novamente retirando a opção --skip-grant-tables
  • Tente acessar com a nova senha fornecida.

Ou ainda:

  • Pare o serviço mysqld
  • Edite o script de inicialização do mysql colocando a diretiva --skip-grant-tables.
  • Inicie o mysql.
  • Entre no mysql, como root:

    > mysql -u root
    

  • Altere a senha do usuário root:

    > update user set password=password('nova-senha') where user='root';
    > flush tables;
    > flush privileges;
    > quit;
    

  • Pare novamente o serviço mysqld
  • Edite o script de inicialização novamente e retire o --skip-grant-tables.
  • Inicie o mysql e tente acessá-lo com a nova senha do root.

Como esclarecimento adicional, transcrevo a seguir o trecho abaixo retirado do manual MySQL 5.4 Reference Manual.

--skip-grant-tables - This option causes the server to start without using the privilege system at all, which gives anyone with access to the server unrestricted access to all databases. You can cause a running server to start using the grant tables again by executing mysqlad-min flush-privileges or mysqladmin reload command from a system shell, or by issuing a MySQL FLUSH PRIVILEGES statement after connecting to the server. This option also suppresses loading of plugins, user-defined functions (UDFs), and scheduled events. To cause plugins to be loaded anyway, use the --plugin-load option.
--skip-grant-tables is unavailable if MySQL was configured with the --disable-grant-options option.

Ronie Ramos de Oliveira

Este artigo foi extraído do sistema Rau-Tu de Perguntas e Respostas sobre Bancos de Dados Livres, mantido pelo Centro de Computação da Unicamp.

Sobre o autor

Luiz Paulo de Oliveira Santos teve seu primeiro contato com computadores em 1984, estudou BASIC para equipamentos de 8 bits (ZX-81 e Apple 2), em 1985 com o ambiente de 16 bits, e em 1988 com o ambiente de 32 bits. Em 1993 foi um dos primeiros Brasileiros a ter contato com o VBK que em 1995 se tornou o Delphi. Graduou em Tecnologia Em Processamento de Dados, cursou especialização em Análise de Sistemas e atualmente é graduando em Ciências Jurídicas. Atua como analista de suporte de redes da Universidade Metodista de Piracicaba, é editor da revista DB Freemagazine (uma revista gratuíta focada exclusivamente para bancos de dados Cliente/Servidor) e professor nas Faculdades Integradas Einstein de Limeira no curso de Tecnologia em Sistemas de Informação. Tem experiência nas áreas: Sistemas de Computação, Redes e Teleprocessamento de Dados, Bancos de Dados cliente-servidor e SQL. É autor do livro Firebird - Dicas de Segurança, publicado pela Editora Ciência Moderna.

Recomende este artigo nas redes sociais

 

 

Veja a relação completa dos artigos desta coluna