Como faço para redefinir a senha raiz do MariaDB em uma instância do Amazon Elastic Compute Cloud (Amazon EC2) que está executando o Amazon Linux 2?
Breve descrição
Por padrão, o MariaDB 5.5 no Amazon Linux 2 não tem uma senha raiz. Se você criar uma senha raiz para o MariaDB e depois se trancar para fora do banco de dados, deverá redefinir a senha raiz.
Observação: você não pode consultar seu banco de dados enquanto estiver redefinindo a senha raiz.
Resolução
1. Verifique se você tem um snapshot recente do volume em que o diretório de dados do MariaDB reside. Você pode recriar o volume a partir desse snapshot, se necessário.
2. Interrompa o serviço do MariaDB:
sudo systemctl stop mariadb
3. Inicie o MariaDB no modo de segurança:
sudo mysqld_safe --skip-grant-tables --skip-networking &
4. Execute o comando a seguir para definir o histórico de comandos do MariaDB como /dev/null e faça login no monitor do MariaDB:
Importante: definir o histórico de comandos /dev/null impede que suas informações de senha apareçam em texto simples no arquivo de histórico. Você pode redefinir esse valor depois de concluir o procedimento completo.
export MYSQL_HISTFILE=/dev/null
mysql -u root
5. Atualize sua senha raiz do MariaDB:
UPDATE mysql.user SET Password = PASSWORD('new_password_here') WHERE User = 'root';
A saída é semelhante a esta:
Query OK, 1 row affected (0.00 sec)
Rows matched: 1 Changed: 1 Warnings: 0
6. Libere os privilégios para recarregar as tabelas de concessão. Sua nova senha entra em vigor após a recarga:
FLUSH PRIVILEGES;
7. Feche o monitor do MariaDB:
exit
8. Interrompa o processo do MariaDB:
sudo kill `sudo cat /var/run/mariadb/mariadb.pid`
Observação: o processo pode levar alguns segundos para ser concluído.
9. Inicie o serviço do MariaDB:
sudo systemctl start mariadb
10. Teste sua nova senha raiz do MariaDB:
mysql -u root -p