Zoeken op website

Hoe u "MySQL-ERROR 1819 (HY000):" in Linux kunt oplossen


Wanneer u een MySQL-gebruiker aanmaakt met een relatief zwak wachtwoord, kunt u de foutmelding ‘MySQL ERROR 1819 (HY000): Uw wachtwoord voldoet niet aan de huidige beleidsvereisten’ tegenkomen. Technisch gezien is dit geen fout, maar een melding dat u een wachtwoord gebruikt dat niet voldoet aan de aanbevolen vereisten voor het wachtwoordbeleid.

Met andere woorden, u gebruikt een zwak wachtwoord dat gemakkelijk kan worden geraden of bruut kan worden geforceerd. Het ingebouwde beveiligingsmechanisme weerhoudt gebruikers ervan zwakke wachtwoorden te maken, waardoor uw database vatbaar kan zijn voor inbreuken.

Ik kwam bijvoorbeeld de fout tegen bij het aanmaken van een gebruiker, zoals weergegeven

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

Het is geen probleem dat het wachtwoord extreem zwak is en een veiligheidsrisico kan vormen.

Hoe MySQL-FOUT 1819 (HY000) in Linux op te lossen

De MySQL database wordt geleverd met een validate_password plug-in die, indien ingeschakeld, een wachtwoordvalidatiebeleid afdwingt. Er zijn 3 niveaus van wachtwoordvalidatiebeleid die door de plug-in worden afgedwongen.

  • LAAG: Hiermee kunnen gebruikers een wachtwoord van 8 of minder tekens instellen.
  • MEDIUM: Hiermee kunnen gebruikers een wachtwoord instellen van 8 of minder tekens, met gemengde hoofdletters en speciale tekens.
  • STERK: Hiermee kunnen gebruikers een wachtwoord instellen dat alle kenmerken heeft van een wachtwoord op middelhoog niveau, inclusief een woordenboekbestand.

Het wachtwoordbeleid is standaard ingesteld op MEDIUM. U kunt het wachtwoordbeleidsniveau bevestigen door de opdracht uit te voeren:

SHOW VARIABLES LIKE 'validate_password%';

Als u de opdracht uitvoert en de uitvoer leeg krijgt, is de plug-in nog niet ingeschakeld.

Voer de onderstaande opdrachten uit om de plug-in validate_password in te schakelen.

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

Om te bevestigen dat de plug-in is geactiveerd, voert u de opdracht uit.

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

U zou de onderstaande uitvoer moeten krijgen:

Om het probleem op te lossen, moet u het wachtwoordvalidatiebeleid op het laagste niveau instellen. Ik weet dat dit contra-intuïtief klinkt, omdat het een mogelijkheid creëert voor het instellen van zwakke wachtwoorden, die er uiteindelijk voor kunnen zorgen dat uw database door hackers wordt gecompromitteerd.

Als u er echter nog steeds op staat uw zin te krijgen, kunt u het volgende doen.

Hoe u het MySQL-wachtwoordvalidatiebeleid kunt wijzigen

Om de MySQL ERROR 1819 (HY000)-fout op te lossen, stelt u een lager wachtwoordvalidatiebeleid in, zoals weergegeven.

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

Vervolgens kunt u het wachtwoordvalidatiebeleidsniveau bevestigen.

SHOW VARIABLES LIKE 'validate_password%';

Nu kunt u doorgaan en naar wens een relatief zwak wachtwoord toewijzen.

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

Om terug te keren naar het ‘MEDIUM’ wachtwoordbeleidsniveau, voert u eenvoudigweg de opdracht uit:

mysql> SET GLOBAL validate_password_policy=MEDIUM;
Conclusie

Persoonlijk zou ik om voor de hand liggende redenen niet aanraden een wachtwoordbeleid op een lager niveau in te stellen. Of het nu een normale gebruiker of een databasegebruiker is, het wordt aanbevolen om altijd een sterk MySQL-wachtwoord in te stellen met meer dan 8 tekens en een combinatie van hoofdletters, kleine letters, numerieke en speciale tekens.

Deze handleiding is bedoeld voor degenen die willen weten hoe ze door een dergelijke fout kunnen navigeren, anders wordt het altijd aanbevolen een sterk wachtwoord in te stellen.