Cómo reparar "MySQL ERROR 1819 (HY000):" en Linux


Al crear un usuario de MySQL con una contraseña relativamente débil, es posible que se encuentre con el error "MySQL ERROR 1819 (HY000): su contraseña no satisface los requisitos de la política actual". Técnicamente, esto no es un error, sino una notificación de que está utilizando una contraseña que no cumple con los requisitos recomendados de la política de contraseñas.

En otras palabras, está utilizando una contraseña débil que puede adivinarse o forzarse fácilmente. El mecanismo de seguridad incorporado desalienta a los usuarios a crear contraseñas débiles que pueden hacer que su base de datos sea propensa a infracciones.

Por ejemplo, me encontré con el error al crear un usuario como se muestra

mysql> create user ‘tecmint’@’localhost’ IDENTIFIED BY ‘mypassword’;

Es obvio que la contraseña es extremadamente débil y puede presentar un riesgo de seguridad.

Cómo resolver MySQL ERROR 1819 (HY000) en Linux

La base de datos MySQL se envía con un complemento validate_password que, cuando está habilitado, impone una política de validación de contraseña. Hay 3 niveles de política de validación de contraseñas que el complemento aplica.

  • BAJA: permite a los usuarios establecer una contraseña de 8 caracteres o menos.
  • MEDIO: permite a los usuarios establecer una contraseña de 8 o menos caracteres con mayúsculas y minúsculas y caracteres especiales.
  • FUERTE: permite a los usuarios establecer una contraseña que tiene todos los atributos de una contraseña de nivel medio con la inclusión de un archivo de diccionario.

De forma predeterminada, la política de contraseñas se establece en MEDIO. Puede confirmar el nivel de política de contraseñas ejecutando el comando:

$ SHOW VARIABLES LIKE 'validate_password%';

Si ejecuta el comando y obtiene el conjunto de salida vacío, entonces el complemento aún no está habilitado.

Para habilitar el complemento validate_password, ejecute los siguientes comandos.

mysql> select plugin_name, plugin_status from information_schema.plugins where plugin_name like 'validate%';
mysql> install plugin validate_password soname 'validate_password.so';

Para confirmar que el complemento está activado, ejecute el comando.

mysql> select plugin_name, plugin_status from information_schema.plugins where plugin_name like 'validate%';

Debería obtener el resultado que se muestra a continuación:

Para resolver el problema, debe establecer la política de validación de contraseña en el nivel más bajo. Sé que esto suena contradictorio, ya que crea una vía para establecer contraseñas débiles que, en última instancia, pueden hacer que los piratas informáticos pongan en peligro su base de datos.

Sin embargo, si aún insiste en salirse con la suya, esto es lo que puede hacer.

Cómo cambiar la política de validación de contraseña de MySQL

Para resolver el error MySQL ERROR 1819 (HY000), configure una política de validación de contraseña más baja como se muestra.

mysql> SET GLOBAL validate_password_policy=LOW;
OR
mysql> SET GLOBAL validate_password_policy=0;

A partir de entonces, puede confirmar el nivel de la política de validación de contraseña.

$ SHOW VARIABLES LIKE 'validate_password%';

Ahora puede continuar y asignar una contraseña relativamente débil según su deseo.

mysql> create user ‘tecmint’@’localhost’ IDENTIFIED BY ‘mypassword’;

Para volver al nivel de política de contraseñas "MEDIO", simplemente invoque el comando:

mysql> SET GLOBAL validate_password_policy=MEDIUM;

Personalmente, no recomendaría establecer una política de contraseñas de nivel inferior por razones obvias. Ya sea un usuario normal o un usuario de base de datos, se recomienda establecer siempre una contraseña segura de MySQL con más de 8 caracteres con una combinación de mayúsculas, minúsculas, numéricos y caracteres especiales.

Esta guía es para aquellos que quieran saber cómo navegar por un error de este tipo; de lo contrario, siempre se recomienda establecer una contraseña segura.