sql >> Databasteknik >  >> RDS >> Mysql

Hur man fixar "MySQL ERROR 1819 (HY000):" i Linux

När du skapar en MySQL användare med ett relativt svagt lösenord kan du stöta på felet "MySQL ERROR 1819 (HY000):Ditt lösenord uppfyller inte de nuvarande policykraven ’. Tekniskt sett är detta inte ett fel, utan ett meddelande om att du använder ett lösenord som inte uppfyller de rekommenderade lösenordspolicykraven.

Du använder med andra ord ett svagt lösenord som lätt kan gissas eller tvingas fram. Den inbyggda säkerhetsmekanismen avskräcker användare från att skapa svaga lösenord som kan göra din databas utsatt för intrång.

Relaterad artikel :Användbara tips för att felsöka vanliga fel i MySQL

Till exempel stötte jag på felet när jag skapade en användare som visas

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

Det är enkelt att lösenordet är extremt svagt och kan utgöra en säkerhetsrisk.

Hur man löser MySQL ERROR 1819 (HY000) i Linux

MySQL databasen levereras med ett validate_password plugin som när den är aktiverad upprätthåller en policy för lösenordsvalidering. Det finns tre nivåer av lösenordsvalideringspolicy som upprätthålls av plugin.

  • LÅG :Tillåter användare att ange ett lösenord på 8 eller färre tecken.
  • MEDEL :Tillåter användare att ange ett lösenord på 8 eller färre tecken med blandade versaler och specialtecken.
  • STARK :Tillåter användare att ställa in ett lösenord som har alla attribut för ett medelnivålösenord med inkludering av en ordboksfil.

Som standard är lösenordspolicyn inställd på MEDIUM . Du kan bekräfta lösenordspolicynivån genom att utföra kommandot:

$ SHOW VARIABLES LIKE 'validate_password%';

Om du kör kommandot och får utgången tom, är plugin-programmet inte aktiverat ännu.

För att aktivera validate_password plugin, kör kommandona nedan.

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

För att bekräfta att plugin-programmet är aktiverat, kör kommandot.

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

Du bör få utdata som visas nedan:

För att lösa problemet måste du ställa in policyn för lösenordsvalidering på den lägsta nivån. Jag vet att detta låter kontraintuitivt eftersom det skapar en väg för att ställa in svaga lösenord som i slutändan kan göra att din databas äventyras av hackare.

Men om du fortfarande insisterar på att ha din vilja, är det här vad du kan göra.

Hur man ändrar policy för MySQL-lösenordsvalidering

För att lösa MySQL ERROR 1819 (HY000) fel, ange en lägre policy för lösenordsvalidering som visas.

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

Du kan därefter bekräfta policynivån för lösenordsvalidering.

$ SHOW VARIABLES LIKE 'validate_password%';

Nu kan du fortsätta och tilldela ett relativt svagt lösenord enligt dina önskemål.

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

För att återgå till "MEDIUM ’ lösenordspolicynivå, anropa helt enkelt kommandot:

mysql> SET GLOBAL validate_password_policy=MEDIUM;
Slutsats

Personligen skulle jag inte rekommendera att ställa in en lösenordspolicy på lägre nivå av uppenbara skäl. Oavsett om det är en normal användare eller en databasanvändare, rekommenderas det att alltid ställa in ett starkt MySQL-lösenord med mer än 8 tecken med en blandning av versaler, gemener, numeriska och specialtecken.

Den här guiden är till för dem som vill veta hur man navigerar i ett sådant fel, annars rekommenderas alltid att ställa in ett starkt lösenord.


  1. Skapa PostgreSQL-databas i farten med Hibernate även om DB inte finns

  2. Hur kan jag kontrollera MySQL-motortypen för en specifik tabell?

  3. HAProxy:Alla Severalnines resurser

  4. Dynamisk MySQL-databasanslutning för Entity Framework 6