Como Recuperar a Senha do Root no MySQL: Guia Passo a Passo

Como Recuperar a Senha do Root no MySQL: Guia Passo a Passo

Em muitas situações é necessário resgatar a senha para o usuário root no banco de dados MySQL. Entre elas, a mais comum é a necessidade de prestar manutenção a um banco de dados que simplesmente “funcionava”, até que um dia o mesmo deixou de funcionar da forma inesperada. Isso acontece normalmente quando o responsável pela manutenção do banco tenha saído da empresa ou ainda se ele mesmo tenha se esquecido da senha.

Felizmente, resgatar a senha de root no MySQL é um processo simples.

NOTA: Este artigo presume que você esteja utilizando sistemas Linux ou Unix-like.

O primeiro passo é identificar o número do processo do MySQL. Em seguida, é necessário finalizar o processo do banco de dados.

Para realizar ambos passos em um só comando, execute na linha de comando como usuário root:

# kill `pidof mysqld`

Em seguida, é necessário criar um arquivo contendo as instruções de alteração da senha. É necessário que o arquivo seja criado em um diretório acessível ao usuário mysql. O diretório mais óbvio é ‘/var/lib/mysql’,
o diretório de dados padrão do MySQL. O nome do arquivo é irrelevante: podemos chamá-lo, por exemplo, de senha.sql:


# vim /var/lib/mysql/senha.sql

— Se você estiver usando MySQL com a  versão 5.7.6 ou superior,
— insira o comando a seguir:

ALTER USER ‘root’@’localhost’ IDENTIFIED BY ‘MinhaNovaSenha’;

— Se você estiver usando MySQL com a versão inferior à 5.7.6,
— insira este comando:

SET PASSWORD FOR ‘root’@’localhost’ = PASSWORD(‘MinhaNovaSenha’);

 

Salve o arquivo. Dado que o arquivo foi criado com usuário root, a propriedade do mesmo deve ser dada ao usuário mysql do sistema operacional. Para isso, utilize o comando chown:


# chown mysql. /var/lib/mysql/senha.sql

Este tutorial presume que o arquivo esteja salvo no diretório ‘/var/lib/mysql’.
Assim sendo, altere o arquivo /etc/my.cnf (ou crie-o, caso necessário), e insira os parâmetros a seguir:


# vim /etc/my.cnf
[mysqld]
init-file=/var/lib/mysql/senha.sql

Salve o arquivo. Após este passo, basta iniciar o MySQL.


# systemctl start mysql

Finalmente, tente logar com a nova senha:


# mysql -pMinhaNovaSenha

OBSERVAÇÃO: Se você não remover o parâmetro init-file do arquivo /etc/my.cnf, o MySQL irá alterar a senha de root a cada reinício, o que pode ser inconveniente. Outro ponto a ser notado é que, caso o arquivo tenha as permissões suficientes, outros usuário podem visualizar a sua senha.
Remova o parâmetro init-file do arquivo /etc/my.cnf e exclua o arquivo /var/lib/mysql/senha.sql para maior segurança.

 

Anterior Guia passo a passo para instalar o MySQL em diferentes sistemas operacionais
Próxima Descubra o poder do CouchDB: o banco de dados NoSQL orientado a documentos

About author

Arlindo Neto
Arlindo Neto 7 posts

Arlindo Neto é administrador de banco de dados apaixonado por PostgreSQL. Cursa Ciência da Computação. Atua com foco em banco de dados open-source, possuindo 3 anos de experiência profissional em análise e engenharia de dados. Acumula experiência em projetos envolvendo PostgreSQL, MariaDB, MySQL e MongoDB. No momento vem atuando com Python, com ênfase em aplicações para Big Data. Possui expertise como professor, desenvolvendo e aplicando cursos sobre Linux e tecnologias Open Source, detém certificação EnterpriseDB PostgreSQL 9.6

View all posts by this author →

Você pode gostar também

DevOps

Entenda o risco das injeções de dados e como prevenir em desenvolvimento de software

Neste artigo, vamos entender o motivo pelo qual as injeções de dados (SQL Injections) estão no Top 10 da OWASP e o porquê dessa classe de vulnerabilidades precisar de atenção

Banco de Dados

Organize seus objetos de banco de dados com schemas PostgreSQL no Django

Que tal se você pudesse organizar seus objetos de bancos de dados (suas tabelas, views, functions, procedures etc.) em namespaces de acordo com suas respectivas funções no sistema? Neste artigo

Containers

Descubra como a Consultoria de TI pode otimizar seus processos empresariais

As empresas estão constantemente em busca de novas estratégias e ferramentas para obter vantagem competitiva. Mas muitas equipes de nível empresarial hesitam em procurar ajuda externamente. Seja para otimizar um