Como habrás notado, se te pedirá que habilites VALIDATE PASSWORD
componente mientras configura la contraseña para la raíz de MySQL usuario. Si está habilitado, el componente Validar contraseña verificará automáticamente la seguridad de la contraseña dada y obligará a los usuarios a configurar solo las contraseñas que sean lo suficientemente seguras. Si proporciona una contraseña débil, se encontrará con un error como este:ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
.
Técnicamente hablando, en realidad no es un error. Este es un mecanismo de seguridad incorporado que notifica a los usuarios que proporcionen solo contraseñas seguras según los requisitos de la política de contraseñas actual.
Dejame mostrarte un ejemplo. Me conecto al servidor MySQL como root
usuario usando el comando:
$ mysql -u root -p
Cree un usuario de base de datos con una contraseña débil:
mysql> create user 'ostechnix'@'localhost' identified by 'mypassword';
Y me encuentro con el siguiente error:
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
¿Ver? El Validate Password
componente no me permite crear un usuario con una contraseña débil (es decir, mypassword
en este caso).
Seguirá recibiendo este error hasta que la contraseña cumpla con los requisitos de la política de contraseñas actual o hasta que deshabilite Validate Password
componente. Veremos cómo hacerlo en la siguiente sección.
Corrección:MySQL ERROR 1819 (HY000):su contraseña no cumple con los requisitos de la política actual
Hay tres niveles de política de validación de contraseña que se aplican cuando Validate Password
el complemento está habilitado:
- BAJO Longitud>=8 caracteres.
- MEDIA Longitud>=8, caracteres numéricos, mayúsculas y minúsculas y especiales.
- FUERTE Longitud>=8, numérico, mayúsculas y minúsculas, caracteres especiales y archivo de diccionario.
En función de estos niveles de política, debe establecer una contraseña adecuada. Por ejemplo, si la política de validación de contraseñas está establecida en Media, debe establecer una contraseña que tenga al menos 8 caracteres, incluido un número, minúsculas, mayúsculas y caracteres especiales.
Primero necesitamos encontrar el nivel actual de la política de contraseñas. Para hacerlo, ejecute el siguiente comando para mostrar las variables del sistema del complemento de validación de contraseña:
mysql> SHOW VARIABLES LIKE 'validate_password%';
Salida de muestra:
+--------------------------------------+--------+ | 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)
Como puede ver, el nivel de contraseña actualmente aplicado es Medio . Por lo tanto, nuestra contraseña debe tener 8 caracteres con un número, mayúsculas y minúsculas y caracteres especiales.
Voy a configurar esta contraseña - Password123#@!
usando el comando:
mysql> create user 'ostechnix'@'localhost' identified by 'Password123#@!'; Query OK, 0 rows affected (0.36 sec)
¿Ver? ¡Ahora funciona! Entonces, para arreglar el "ERROR 1819 (HY000)...
" error, debe ingresar una contraseña según la política de validación de contraseña actual.
Cambiar política de validación de contraseña en MySQL
También puedes resolver el "ERROR 1819 (HY000)...
" configurando una política de contraseñas de nivel inferior.
Para hacerlo, ejecute el siguiente comando desde el indicador de mysql:
mysql> SET GLOBAL validate_password.policy = 0;
O,
mysql> SET GLOBAL validate_password.policy=LOW;
Luego verifique si la política de validación de contraseñas se ha cambiado a baja:
mysql> SHOW VARIABLES LIKE 'validate_password%';
Salida de muestra:
+--------------------------------------+-------+ | 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)
Ahora puede crear un usuario con una contraseña débil como la siguiente:
mysql> create user 'senthil'@'localhost' identified by 'password';
Para volver a la política de nivel MEDIO, simplemente ejecute este comando desde el indicador de mysql:
mysql> SET GLOBAL validate_password.policy=MEDIUM;
Si la política de contraseñas no cambia, salga del indicador de mysql y reinicie el servicio mysql desde la ventana de su Terminal:
$ sudo systemctl restart mysql
Ahora debería funcionar.
Aviso: Uno de nuestros lectores ha señalado que hay un error tipográfico en el siguiente comando:
mysql> SET GLOBAL validate_password.policy=LOW;
Debería ser:
mysql> SET GLOBAL validate_password_policy=LOW;
Tenga en cuenta el guión bajo en el comando anterior. Como eliminé la configuración, no tengo forma de verificar este comando. Pero supongo que el comando se ha cambiado en las versiones más nuevas de MySQL.
Desactivar política de validación de contraseña
Si desea crear usuarios con contraseña débil, simplemente deshabilite Validate Password
componente por completo y vuelva a habilitarlo después de crear los usuarios.
Inicie sesión en el servidor MySQL:
$ mysql -u root -p
Para deshabilitar temporalmente el componente Validar contraseña, ejecute el siguiente comando desde el indicador de MySQL:
mysql> UNINSTALL COMPONENT "file://component_validate_password";
Cree los usuarios con cualquier contraseña de su elección:
mysql> create user 'kumar'@'localhost' identified by '123456';
Finalmente, habilite el componente Validar contraseña:
mysql> INSTALL COMPONENT "file://component_validate_password";
Personalmente, no recomiendo cambiar la política a un nivel inferior o deshabilitar la política de contraseñas. Ya sea un usuario de la base de datos o un usuario normal, utilice siempre una contraseña segura con más de 8 caracteres, incluido un número, mayúsculas y minúsculas y caracteres espaciales.
Conclusión
En esta guía, aprendimos sobre uno de los errores comunes de MySQL:ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
y cómo solucionarlo en Linux. También aprendimos cómo deshabilitar la política de contraseñas para permitir contraseñas débiles.
Lectura relacionada:
- Instalar Apache, MySQL, PHP (pila LAMP) en Ubuntu 20.04 LTS
- Instalar Nginx, MySQL, PHP (LEMP Stack) en Ubuntu 20.04 LTS