Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Como redefinir a senha raiz 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 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 de senha.

Felizmente, existe uma maneira 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 MySQL 8.0.

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

Redefinir a senha raiz do MySQL usando –init-file


Uma das maneiras de redefinir a senha do root é criar um arquivo local e iniciar o serviço MySQL usando --init-file opção como 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';

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, 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 ser capaz de se conectar ao servidor MySQL como root usando a nova senha.
# mysql -u root -p

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


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

Se o servidor for iniciado --skip-grant-tables , a opção para --skip-networking é ativado 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 executando.
# mysql

Como o gerenciamento de contas é desabilitado quando o serviço é iniciado com --skip-grant-tables opção, 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 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 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 do MySQL para Linux
  4. 4 ferramentas de linha de comando úteis para monitorar o desempenho do MySQL
  5. Comandos de administração do banco de dados MySQL
Conclusão

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.