Correção - MySQL ERROR 1819 (HY000): sua senha não atende aos requisitos da política atual
Como você deve ter notado, você será solicitado a ativar o componente VALIDATE PASSWORD
enquanto configura a senha para o usuário root do MySQL. Se ativado, o componente Validar Senha verificará automaticamente a força da senha fornecida e obrigará os usuários a definir apenas as senhas que sejam seguras o suficiente. Se você fornecer uma senha fraca, encontrará um erro como este - ERRO 1819 (HY000): Sua senha não atende aos requisitos da política atual
.
Tecnicamente falando, não é realmente um erro. Este é um mecanismo de segurança integrado que força os usuários a fornecer apenas senhas fortes com base nos requisitos atuais da política de senhas.
Deixe-me mostrar-lhe um exemplo. Eu faço login no servidor MySQL como usuário root
usando o comando:
mysql -u root -p
Crie um usuário de banco de dados com uma senha fraca:
mysql> create user 'ostechnix'@'localhost' identified by 'mypassword';
E me deparo com o seguinte erro:
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
ERRO 1819 (HY000): Sua senha não atende aos requisitos da política atual
Ver? O componente Validate Password
não me permite criar um usuário com uma senha fraca (ou seja, mypassword
neste caso).
Você continuará recebendo esse erro até que a senha atenda aos requisitos da política de senha atual ou até que você desative o componente Validar senha
. Veremos como fazer isso na seção seguinte.
Correção - MySQL ERROR 1819 (HY000): sua senha não atende aos requisitos da política atual
Existem três níveis de política de validação de senha aplicadas quando o plugin Validate Password
está ativado:
- BAIXO Comprimento >= 8 caracteres.
- MÉDIO Comprimento >= 8, numérico, combinação de letras maiúsculas e minúsculas e caracteres especiais.
- STRONG Comprimento >= 8, numérico, letras maiúsculas e minúsculas, caracteres especiais e arquivo de dicionário.
Com base nesses níveis de política, é necessário definir uma senha apropriada. Por exemplo, se a política de validação de senha estiver definida como Média, você deverá definir uma senha que tenha pelo menos 8 caracteres, incluindo um número, letras minúsculas, maiúsculas e caracteres especiais.
Primeiro, precisamos encontrar o nível atual da política de senha. Para fazer isso, execute o seguinte comando para mostrar as variáveis do sistema do plugin de validação de senha:
mysql> SHOW VARIABLES LIKE 'validate_password%';
Exemplo de resultado:
+--------------------------------------+--------+
| Variable_name | Value |
+--------------------------------------+--------+
| validate_password.check_user_name | ON |
| validate_password.dictionary_file | |
| validate_password.length | 8 |
| validate_password.mixed_case_count | 1 |
| validate_password.number_count | 1 |
| validate_password.policy | MEDIUM |
| validate_password.special_char_count | 1 |
+--------------------------------------+--------+
7 rows in set (0.09 sec)
Mostrar política de validação de senha no mysql
Como você pode ver, o nível de senha atualmente aplicado é Médio. Portanto, nossa senha deve ter oito caracteres com um número, letras maiúsculas e caracteres especiais.
Vou definir esta senha - Password123#@!
usando o comando:
mysql> create user 'ostechnix'@'localhost' identified by 'Password123#@!';
Query OK, 0 rows affected (0.36 sec)
Crie um usuário de banco de dados no mysql
Ver? Agora está funcionando! Portanto, para corrigir o erro "ERROR 1819 (HY000)...
", você precisa inserir uma senha de acordo com a política de validação de senha atual.
Alterar a política de validação de senha no MySQL
Você também pode resolver o "ERROR 1819 (HY000)...
" configurando uma política de senha de nível inferior.
Para fazer isso, execute o seguinte comando no prompt do mysql:
mysql> SET GLOBAL validate_password.policy = 0;
Ou,
mysql> SET GLOBAL validate_password.policy=LOW;
Em seguida, verifique se a política de validação de senha foi alterada para baixa:
mysql> SHOW VARIABLES LIKE 'validate_password%';
Exemplo de resultado:
+--------------------------------------+-------+
| Variable_name | Value |
+--------------------------------------+-------+
| validate_password.check_user_name | ON |
| validate_password.dictionary_file | |
| validate_password.length | 8 |
| validate_password.mixed_case_count | 1 |
| validate_password.number_count | 1 |
| validate_password.policy | LOW |
| validate_password.special_char_count | 1 |
+--------------------------------------+-------+
7 rows in set (0.00 sec)
Agora você pode criar um usuário com uma senha fraca como abaixo:
mysql> create user 'senthil'@'localhost' identified by 'password';
Alterar política de validação de senha no mysql
Para reverter para a política de nível MÉDIO, simplesmente execute este comando no prompt do mysql:
mysql> SET GLOBAL validate_password.policy=MEDIUM;
Se a política de senha não mudar, saia do prompt do mysql e reinicie o serviço mysql na janela do Terminal:
sudo systemctl restart mysql
Agora deve funcionar.
Atenção: Um de nossos leitores apontou que há um erro de digitação no seguinte comando:
mysql> SET GLOBAL validate_password.policy=LOW;
Deveria ser:
mysql> SET GLOBAL validate_password_policy=LOW;
Observe o sublinhado no comando acima. Como excluí a configuração, não tenho como verificar este comando. Mas presumo que o comando tenha sido alterado nas versões mais recentes do MySQL.
Desabilitar política de validação de senha
Se você gosta de criar usuários com senha fraca, simplesmente desabilite o componente Validate Password
e reative-o novamente após criar os usuários.
Faça login no servidor MySQL:
mysql -u root -p
Para desativar temporariamente o componente Validar Senha, execute o seguinte comando no prompt do MySQL:
mysql> UNINSTALL COMPONENT "file://component_validate_password";
Crie os usuários com qualquer senha de sua preferência:
mysql> create user 'kumar'@'localhost' identified by '123456';
Por fim, habilite o componente Validar Senha:
mysql> INSTALL COMPONENT "file://component_validate_password";
Desative temporariamente a política de validação de senha no mysql
Pessoalmente, não recomendo alterar a política para um nível inferior ou desativar a política de senha. Seja um usuário de banco de dados ou usuário normal, sempre use uma senha forte com mais de 8 caracteres incluindo um número, letras maiúsculas e minúsculas e caracteres espaciais.
Conclusão
Neste guia, aprendemos sobre um dos erros comuns do MySQL - ERROR 1819 (HY000): Sua senha não satisfaz os requisitos da política atual
e como corrigi-lo no Linux. Também aprendemos como desabilitar a política de senha para permitir senhas fracas em alguns casos. Pessoalmente, recomendo que você use uma senha forte.
Leitura relacionada:
- Instalar Apache, MySQL, PHP (pilha LAMP) no Ubuntu 20.04 LTS
- Instalar Nginx, MySQL, PHP (pilha LEMP) no Ubuntu 20.04 LTS