Hvordan fikse "MySQL ERROR 1819 (HY000):" i Linux


Når du oppretter en MySQL-bruker med et relativt svakt passord, kan du få feilen «MySQL ERROR 1819 (HY000): Passordet ditt tilfredsstiller ikke gjeldende policykrav. Teknisk sett er dette ikke en feil, men et varsel om at du bruker et passord som ikke oppfyller de anbefalte passordpolicykravene.

Du bruker med andre ord et svakt passord som enkelt kan gjettes eller tvinges til. Den innebygde sikkerhetsmekanismen fraråder brukere å lage svake passord som kan gjøre databasen din utsatt for brudd.

For eksempel fikk jeg feilen da jeg opprettet en bruker som vist

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

Det er enkelt at passordet er ekstremt svakt og kan utgjøre en sikkerhetsrisiko.

Hvordan løse MySQL ERROR 1819 (HY000) i Linux

MySQL-databasen leveres med en validate_password-plugin som, når den er aktivert, håndhever en policy for passordvalidering. Det er 3 nivåer av passordvalideringspolicy som håndheves av plugin-en.

  • LAV: Lar brukere angi et passord på 8 eller færre tegn.
  • MIDDELS: Lar brukere angi et passord på 8 eller færre tegn med blandede store og små bokstaver og spesialtegn.
  • STERK: Lar brukere angi et passord som har alle attributtene til et passord på middels nivå med inkludering av en ordbokfil.

Som standard er passordpolicyen satt til MIDDELS. Du kan bekrefte passordpolicynivået ved å utføre kommandoen:

SHOW VARIABLES LIKE 'validate_password%';

Hvis du kjører kommandoen og får utdataene tomme, er ikke plugin-modulen aktivert ennå.

For å aktivere validate_password-pluginen, kjør kommandoene nedenfor.

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

For å bekrefte at plugin-en er aktivert, kjør kommandoen.

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

Du bør få utgangen vist nedenfor:

For å løse problemet må du sette passordvalideringspolicyen til det laveste nivået. Jeg vet at dette høres motintuitivt ut siden det skaper en vei for å sette svake passord som til slutt kan føre til at databasen din blir kompromittert av hackere.

Men hvis du fortsatt insisterer på å ha viljen din, er dette hva du kan gjøre.

Hvordan endre MySQL-passordvalideringspolicy

For å løse MySQL ERROR 1819 (HY000)-feilen, angi en lavere policy for passordvalidering som vist.

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

Du kan deretter bekrefte policynivået for passordvalidering.

SHOW VARIABLES LIKE 'validate_password%';

Nå kan du fortsette og tilordne et relativt svakt passord etter ditt ønske.

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

For å gå tilbake til «MEDIUM»-passordpolicynivået, bare påkalle kommandoen:

mysql> SET GLOBAL validate_password_policy=MEDIUM;
Konklusjon

Personlig vil jeg ikke anbefale å sette en passordpolicy på lavere nivå av åpenbare grunner. Enten det er en vanlig bruker eller en databasebruker, anbefales det å alltid angi et sterkt MySQL-passord med mer enn 8 tegn med en blanding av store, små, numeriske og spesialtegn.

Denne veiledningen er for de som vil vite hvordan man navigerer i en slik feil, ellers anbefales det alltid å sette et sterkt passord.