Pesquisa de site

Como redefinir a senha root no MySQL 8.0


No caso infeliz de esquecer ou perder sua senha root do MySQL, você certamente precisará de uma maneira de recuperá-la de alguma forma. O que precisamos saber é que a senha está armazenada na tabela de usuários. Isso significa que precisamos descobrir uma maneira de contornar a autenticação do MySQL, para que possamos atualizar o registro da senha.

Felizmente, é fácil de conseguir e este tutorial irá guiá-lo através do processo de recuperação ou redefinição da senha root na versão MySQL 8.0.

De acordo com a documentação do MySQL, existem duas maneiras de redefinir a senha root do MySQL. Analisaremos ambos.

Redefinir a senha root do MySQL usando –init-file

Uma das maneiras de redefinir a senha root é criar um arquivo local e então iniciar o serviço MySQL usando a opção --init-file conforme mostrado.

vim /home/user/init-file.txt

É importante que você tenha certeza de que o arquivo pode ser lido pelo usuário mysql. Dentro desse arquivo cole o seguinte:

ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';

No item acima altere “new_password” pela senha que deseja usar.

Agora certifique-se de que o serviço MySQL esteja parado. Você pode fazer o seguinte:

systemctl stop mysqld.service     # for distros using systemd 
/etc/init.d/mysqld stop           # for distros using init

Em seguida, execute o seguinte:

mysqld --user=mysql --init-file=/home/user/init-file.txt --console

Isso iniciará o serviço MySQL e durante o processo executará o arquivo init que você criou e assim a senha do usuário root será atualizada. Certifique-se de excluir o arquivo assim que a senha for redefinida.

Certifique-se de parar o servidor e iniciá-lo normalmente depois disso.

systemctl stop mysqld.service        # for distros using systemd 
systemctl restart mysqld.service     # for distros using systemd 

/etc/init.d/mysqld stop              # for distros using init
/etc/init.d/mysqld restart           # for distros using init

Agora você deve conseguir se conectar ao servidor MySQL como root usando a nova senha.

mysql -u root -p

Redefinir a senha root do MySQL usando –skip-grant-tables

A segunda opção que temos é iniciar o serviço MySQL com a opção --skip-grant-tables. Isso é menos seguro, pois enquanto o serviço é iniciado dessa forma, todos os usuários podem se conectar sem senha.

Se o servidor for iniciado --skip-grant-tables, a opção --skip-networking será automaticamente ativada para que conexões remotas não estejam disponíveis.

Primeiro certifique-se de que o serviço MySQL esteja parado.

systemctl stop mysqld.service     # for distros using systemd 
/etc/init.d/mysqld stop           # for distros using init

Em seguida, inicie o serviço com a seguinte opção.

mysqld --skip-grant-tables --user=mysql &

Então, você pode se conectar ao servidor mysql simplesmente executando.

mysql

Como o gerenciamento de contas é desabilitado quando o serviço é iniciado com a opção --skip-grant-tables, teremos que recarregar as concessões. Dessa forma poderemos alterar a senha posteriormente:

FLUSH PRIVILEGES;

Agora você pode executar a seguinte consulta para atualizar a senha. Certifique-se de alterar “new_password” pela senha real que deseja usar.

ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_passowrd';

Agora pare o servidor MySQL e inicie-o normalmente.

systemctl stop mysqld.service        # for distros using systemd 
systemctl restart mysqld.service     # for distros using systemd 

/etc/init.d/mysqld stop              # for distros using init
/etc/init.d/mysqld restart           # for distros using init

Você deverá conseguir se conectar com sua nova senha.

mysql -u root -p

Você também pode gostar de ler estes artigos úteis relacionados ao MySQL.

  1. Como instalar o MySQL 8 no CentOS, RHEL e Fedora
  2. 15 dicas úteis de ajuste e otimização de desempenho do MySQL
  3. 12 práticas de segurança MySQL para Linux
  4. 4 ferramentas úteis de linha de comando para monitorar o desempenho do MySQL
  5. Comandos de administração de banco de dados MySQL
Conclusão

Neste artigo você aprendeu como redefinir a senha root perdida do servidor MySQL 8.0. Espero que o processo tenha sido fácil.