Sådan rettes "MySQL FEJL 1819 (HY000):" i Linux


Når du opretter en MySQL-bruger med en relativt svag adgangskode, kan du muligvis støde på fejlen 'MySQL FEJL 1819 (HY000): Din adgangskode opfylder ikke de nuværende politikkrav'. Teknisk set er dette ikke en fejl, men en meddelelse om, at du bruger en adgangskode, der ikke lever op til de anbefalede adgangskodepolitiske krav.

Med andre ord bruger du en svag adgangskode, der let kan gættes eller tvinges hårdt. Den indbyggede sikkerhedsmekanisme fraråder brugerne at oprette svage adgangskoder, som kan gøre din database tilbøjelig til brud.

For eksempel løb jeg ind i fejlen, da jeg oprettede en bruger som vist

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

Det er en no brainer, at adgangskoden er ekstremt svag og kan udgøre en sikkerhedsrisiko.

Sådan løses MySQL FEJL 1819 (HY000) i Linux

MySQL-databasen leveres med et validate_password-plugin, som, når det er aktiveret, håndhæver en politik til validering af adgangskode. Der er 3 niveauer af adgangskodevalideringspolitik, der håndhæves af pluginet.

  • LOW: Allows users to set a password of 8 or fewer characters.
  • MEDIUM: Allows users to set a password of 8 or fewer characters with mixed cases and special characters.
  • STRONG: Allows users to set a password that has all the attributes of a medium-level password with the inclusion of a dictionary file.

Som standard er adgangskodepolitikken indstillet til MEDIUM. Du kan bekræfte niveauet for adgangskodepolitik ved at udføre kommandoen:

$ SHOW VARIABLES LIKE 'validate_password%';

Hvis du kører kommandoen og får output tomt sæt, er plugin'et ikke aktiveret endnu.

For at aktivere validate_password-pluginet skal du køre kommandoerne 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 at bekræfte, at pluginet er aktiveret, skal du køre kommandoen.

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

Du skal få output vist nedenfor:

For at løse problemet skal du indstille adgangskodevalideringspolitikken til det laveste niveau. Jeg ved, at dette lyder kontraintuitivt, da det skaber en mulighed for at indstille svage adgangskoder, som i sidste ende kan få din database til at blive kompromitteret af hackere.

Men hvis du stadig insisterer på at få din vej, er det her, hvad du kan gøre.

Sådan ændres MySQL-adgangskodevalideringspolitik

For at løse MySQL ERROR 1819 (HY000) -fejlen skal du indstille en lavere validering af adgangskodepolitik som vist.

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

Du kan derefter bekræfte niveauet for validering af adgangskode.

$ SHOW VARIABLES LIKE 'validate_password%';

Nu kan du fortsætte og tildele en relativt svag adgangskode efter dit ønske.

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

For at vende tilbage til 'MEDIUM' adgangskodepolitisk niveau skal du blot påkalde kommandoen:

mysql> SET GLOBAL validate_password_policy=MEDIUM;

Personligt vil jeg ikke anbefale at indstille en adgangskodepolitik på et lavere niveau af indlysende grunde. Uanset om det er en normal bruger eller en databasebruger, anbefales det altid at indstille en stærk MySQL-adgangskode med mere end 8 tegn med en blanding af store, små, numeriske og specialtegn.

Denne vejledning er af hensyn til dem, der ønsker at vide, hvordan man navigerer i en sådan fejl, ellers anbefales det altid at indstille en stærk adgangskode.