Como restaurar a senha de root do MySQL

Como restaurar a senha de root do MySQL

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 Instalação do MySQL 8 em Debian e CentOS
Próxima Introdução ao CouchDB

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

Vantagens de um Banco de Dados NoSQL, MongoDB

NoSQL refere-se a um banco de dados não relacional. Um banco de dados relacional é um formato de banco de dados rigidamente estruturado, baseado em tabelas, como o MySQL ou o Oracle. Os bancos

Banco de Dados

Instalação do MySQL 8 em Debian e CentOS

Ao tentar instalar o MySQL – o banco de dados open-source mais popular do mundo – você pode ser surpreendido no final do processo ao obter o MariaDB. Este fork

Banco de Dados

Introdução ao CouchDB

CouchDB é um banco de dados NoSQL orientado a documentos. Utiliza JSON como formato de dados e JavaScript como linguagem de consulta. Diferente da maioria dos outros bancos de dados,