Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
debian:senha-mysql-mariadb [2024/06/24 13:51] – thierry | debian:senha-mysql-mariadb [2024/06/24 19:27] (Version actuelle) – [Introdução] thierry | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
- | ===== Pré-requisitos | + | ===== Redefinir sua senha root do MySQL ou MariaDB ===== |
+ | |||
+ | ==== Introdução ==== | ||
+ | |||
+ | Esquecer senhas acontece com todos nós. Se você **esquecer ou perder a senha root** do seu banco de dados MySQL ou MariaDB, você ainda poderá obter acesso e redefinir a senha se tiver acesso ao servidor e uma conta de usuário habilitada para sudo. | ||
+ | |||
+ | Este tutorial abordará a redefinição da senha root para versões mais antigas e mais recentes do MySQL e MariaDB. | ||
+ | |||
+ | ==== Pré-requisitos ==== | ||
Para recuperar sua senha root do MySQL/ | Para recuperar sua senha root do MySQL/ | ||
Ligne 5: | Ligne 13: | ||
| | ||
- | Passo 1 — Identificando a versão do banco de dados | + | |
A maioria das distribuições Linux modernas vem com MySQL ou MariaDB, um substituto popular que é totalmente compatível com MySQL. Dependendo do banco de dados utilizado e sua versão, você deve utilizar comandos diferentes para recuperar a senha root. | A maioria das distribuições Linux modernas vem com MySQL ou MariaDB, um substituto popular que é totalmente compatível com MySQL. Dependendo do banco de dados utilizado e sua versão, você deve utilizar comandos diferentes para recuperar a senha root. | ||
Ligne 25: | Ligne 33: | ||
Observe qual banco de dados e versão você está executando, pois você os usará mais tarde. Em seguida, você precisa parar o banco de dados para acessá-lo manualmente. | Observe qual banco de dados e versão você está executando, pois você os usará mais tarde. Em seguida, você precisa parar o banco de dados para acessá-lo manualmente. | ||
- | ===== Parando o Servidor de Banco de Dados ===== | + | ===== 2- Parando o Servidor de Banco de Dados ===== |
Ligne 41: | Ligne 49: | ||
Depois que o servidor de banco de dados for interrompido, | Depois que o servidor de banco de dados for interrompido, | ||
- | ===== Reiniciando o servidor de banco de dados sem verificação de permissão ===== | + | ===== 3- Reiniciando o servidor de banco de dados sem verificação de permissão ===== |
Ligne 49: | Ligne 57: | ||
Inicie o banco de dados sem carregar as tabelas de concessão ou ativar a rede: | Inicie o banco de dados sem carregar as tabelas de concessão ou ativar a rede: | ||
+ | |||
+ | sudo mysqld_safe --skip-grant-tables --skip-networking & | ||
| | ||
+ | O e comercial no final deste comando fará com que este processo seja executado em segundo plano para que você possa continuar a usar seu terminal. | ||
+ | |||
+ | Agora, você pode se conectar ao banco de dados como usuário root, o que não deve exigir senha. | ||
+ | |||
+ | mysql -u root | ||
| | ||
+ | Você verá imediatamente um prompt do shell do banco de dados. | ||
+ | |||
+ | Solicitação do MySQL: | ||
+ | | ||
+ | Type ' | ||
+ | | ||
+ | mysql> | ||
+ | |||
+ | Solicitação do MariaDB: | ||
+ | |||
+ | Type ' | ||
+ | | ||
+ | MariaDB [(none)]> | ||
+ | | ||
+ | Agora que você tem acesso root, você pode alterar a senha root. | ||
+ | |||
+ | ===== 4- Alterando a senha root ===== | ||
+ | |||
+ | Uma maneira simples de alterar a senha root para versões modernas do MySQL é usando o comando ALTER USER. No entanto, este comando não funcionará agora porque as tabelas de concessão não estão carregadas. | ||
+ | |||
+ | Vamos dizer ao servidor de banco de dados para recarregar as tabelas de permissões emitindo o comando FLUSH PRIVILEGES. | ||
+ | |||
+ | FLUSH PRIVILEGES; | ||
+ | | ||
+ | Agora podemos alterar a senha do root. | ||
+ | |||
+ | Use o seguinte comando para MySQL 5.7.6 e mais recente e MariaDB 10.1.20 e mais recente. | ||
+ | |||
+ | ALTER USER ' | ||
+ | |||
+ | Para MySQL 5.7.5 e anteriores, bem como MariaDB 10.1.20 e anteriores, use: | ||
+ | |||
+ | SET PASSWORD FOR ' | ||
+ | | ||
+ | Certifique-se de substituir nova_senha pela nova senha de sua escolha. | ||
+ | |||
+ | |||
+ | '' | ||
+ | |||
+ | UPDATE mysql.user SET authentication_string = PASSWORD(' | ||
+ | | ||
+ | Em ambos os casos, você deverá ver a confirmação de que o comando foi executado com sucesso da seguinte forma: | ||
+ | |||
+ | Output | ||
+ | Query OK, 0 rows affected (0.00 sec) | ||
+ | | ||
+ | A senha foi alterada, então agora você pode parar a instância manual do servidor de banco de dados e reiniciá-lo como estava antes. | ||
+ | |||
+ | ===== 5- Reinicie o servidor de banco de dados normalmente ===== | ||
+ | |||
+ | Primeiro, pare a instância do servidor de banco de dados que você iniciou manualmente na Etapa 3. Este comando procura o PID, ou ID do processo, do processo MySQL ou MariaDB e envia SIGTERM para instruí-lo a sair sem problemas após realizar as operações de limpeza. Você pode aprender mais neste tutorial de gerenciamento de processos Linux. | ||
+ | |||
+ | Para MySQL, use: | ||
+ | |||
+ | sudo kill `cat / | ||
+ | |||
+ | Para MariaDB, use: | ||
+ | |||
+ | sudo kill `/ | ||
+ | |||
+ | |||
+ | Em seguida, reinicie o serviço usando systemctl. | ||
+ | |||
+ | |||
+ | Para iniciar MySQL, use: | ||
+ | |||
+ | sudo systemctl start mysql | ||
+ | |||
+ | Para iniciar MariaDB, use: | ||
+ | |||
+ | sudo systemctl start mariadb | ||
+ | |||
+ | Agora você pode confirmar se a nova senha foi aplicada corretamente executando: | ||
+ | |||
+ | mysql -u root -p | ||
+ | |||
+ | O comando agora deve solicitar a senha recém-atribuída. Insira-o e você deverá obter acesso ao prompt do banco de dados conforme esperado. | ||
+ | Conclusão | ||
+ | |||
+ | Agora você tem acesso administrativo ao servidor MySQL ou MariaDB restaurado. Certifique-se de que a nova senha root escolhida seja forte e segura e mantenha-a em um local seguro. | ||
+ |