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.
About author
Você pode gostar também
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
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
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