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

Banco de Dados

Entenda o Log Binário do MySQL e suas aplicações práticas

O log binário do MySQL é, por vezes, mal compreendido, principalmente por usuários de outros bancos de dados. Nesta postagem pretendo abordar alguns aspectos desse importante mecanismo. Write-ahead logging? Também

Banco de Dados

Descubra as novidades e vantagens da versão PostgreSQL 9.0

No dia 20 de setembro de 2010, o Grupo de Desenvolvimento Global do PostgreSQL anunciou o lançamento da versão PostgreSQL 9.0. De acordo com Flávio Henrique A. Gurgel, CONSTRUTOR 4Linux

Banco de Dados

Entrevista com Flavio Gurgel: Especialista discute sobre PostgreSQL

A 4Linux conversou sobre o PostgreSQL com Flavio Gurgel, entusiasta do software livre e especialista em banco de dados há quase 20 anos. Gurgel, atualmente, presta consultoria, suporte e treinamento