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

Aprenda SQL com Flexibilidade de Escolha de Banco de Dados no Nosso Curso

“Apesar de permitir trabalhar com qualquer banco de dados, o aluno vai poder escolher em qual banco quer trabalhar durante o curso: MySQL ou PostgreSQL.” explica Vinicius Vale, autor do

Banco de Dados

Acesso a dados SQL Server através do PostgreSQL: um guia prático

Tenho um PostgreSQL e preciso acessar dados que estão no SQL Server! E agora?! Não! Não precisa entrar em pânico! Existe uma solução para isso. Digamos que em um determinado

Banco de Dados

Domine o Wildfly 8: Curso com foco em Administração e DevOps

Administração com Cluster de Alta Performance em ambiente DevOps. Novidades do Curso além dos recursos novos do Wildfly No curso existe uma máquina DEVOPS (com ferramentas dev, como GIT, Maven)