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 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
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
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