Com solucionar MySQL ERROR 1819 (HY000): a Linux


Quan creeu un usuari de MySQL amb una contrasenya relativament feble, podeu trobar l'error MySQL ERROR 1819 (HY000): La vostra contrasenya no compleix els requisits de la política actual. Tècnicament, no es tracta d'un error, sinó d'una notificació que esteu utilitzant una contrasenya que no compleix els requisits recomanats de la política de contrasenyes.

En altres paraules, esteu utilitzant una contrasenya feble que es pot endevinar fàcilment o forçada per força. El mecanisme de seguretat integrat desanima els usuaris a crear contrasenyes febles que poden fer que la vostra base de dades sigui propensa a incompliments.

Per exemple, em vaig trobar amb l'error en crear un usuari tal com es mostra

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

És una obvietat que la contrasenya és extremadament feble i pot suposar un risc de seguretat.

Com resoldre l'error MySQL 1819 (HY000) a Linux

La base de dades MySQL s'envia amb un connector validate_password que, quan està activat, imposa una política de validació de contrasenya. Hi ha 3 nivells de política de validació de contrasenyes que s'aplica el connector.

  • BAIX: permet als usuaris establir una contrasenya de 8 caràcters o menys.
  • MITJÀ: permet als usuaris establir una contrasenya de 8 caràcters o menys amb majúscules i caràcters especials barrejats.
  • FORTS: permet als usuaris establir una contrasenya que tingui tots els atributs d'una contrasenya de nivell mitjà amb la inclusió d'un fitxer de diccionari.

Per defecte, la política de contrasenyes s'estableix en MITJANA. Podeu confirmar el nivell de política de contrasenyes executant l'ordre:

$ SHOW VARIABLES LIKE 'validate_password%';

Si executeu l'ordre i obteniu la sortida buida, el connector encara no està habilitat.

Per habilitar el connector validate_password, executeu les ordres següents.

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

Per confirmar que el connector està activat, executeu l'ordre.

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

Hauríeu d'obtenir la sortida que es mostra a continuació:

Per resoldre el problema, cal que configureu la política de validació de contrasenyes al nivell més baix. Sé que això sona contraintuïtiu, ja que crea una via per establir contrasenyes febles que, en última instància, poden provocar que els pirates informàtics comprometin la vostra base de dades.

No obstant això, si encara insistiu a seguir la vostra manera, aquí teniu el que podeu fer.

Com canviar la política de validació de contrasenya de MySQL

Per resoldre l'error MySQL ERROR 1819 (HY000), establiu una política de validació de contrasenya més baixa com es mostra.

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

A continuació, podeu confirmar el nivell de política de validació de contrasenyes.

$ SHOW VARIABLES LIKE 'validate_password%';

Ara podeu continuar i assignar una contrasenya relativament feble segons el vostre desig.

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

Per tornar al nivell de política de contrasenyes MITJÀ, només cal que invoqueu l'ordre:

mysql> SET GLOBAL validate_password_policy=MEDIUM;

Personalment, no recomanaria establir una política de contrasenyes de nivell inferior per raons òbvies. Tant si es tracta d'un usuari normal com d'un usuari de base de dades, es recomana establir sempre una contrasenya MySQL forta amb més de 8 caràcters amb una barreja de majúscules, minúscules, numèrics i caràcters especials.

Aquesta guia és per a aquells que volen saber com navegar per aquest error, en cas contrari, sempre es recomana establir una contrasenya segura.