Como redefinir a senha do root no MySQL 8.0


Em um evento infeliz de esquecer ou perder sua senha de root do MySQL, você certamente precisará de uma maneira de recuperá-la de alguma forma. O que precisamos saber é que a senha é 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 há um fácil de alcançar e este tutorial irá guiá-lo através do processo de recuperação ou redefinição de senha de root na versão do MySQL 8.0.

De acordo com a documentação do MySQL, existem duas maneiras de redefinir a senha do MySQL raiz. Vamos rever os dois.

Redefinir senha de root do MySQL usando –init-file

Uma das maneiras de redefinir a senha do root é criar um arquivo local e depois 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 é legível pelo usuário mysql. Dentro desse arquivo, cole o seguinte:

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

Na alteração acima, “ new_password ” com a senha que você deseja usar.

Agora, certifique-se de que o serviço MySQL está 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, ele executará o arquivo init que você criou e, portanto, a senha para o usuário root será atualizada. Certifique-se de excluir o arquivo depois 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 de root do MySQL usando as tabelas de concessão -skip

A segunda opção que temos é iniciar o serviço MySQL com a opção - skip-grant-tables . Isso é menos seguro, 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 para - skip-networking é ativada automaticamente para que as conexões remotas não estejam disponíveis.

Primeiro, certifique-se de que o serviço MySQL está 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 rodando.

# mysql

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

# FLUSH PRIVILEGES;

Agora você pode executar a consulta a seguir para atualizar a senha. Certifique-se de alterar "new_password" com a senha real que você 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ê deve poder se conectar com sua nova senha.

# mysql -u root -p

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

  1. How to Install MySQL 8 in CentOS, RHEL and Fedora
  2. 15 Useful MySQL Performance Tuning and Optimization Tips
  3. 12 MySQL Security Practices for Linux
  4. 4 Useful Commandline Tools to Monitor MySQL Performance
  5. MySQL Database Administartion Commands

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