Pesquisa de site

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

Artigos relacionados