GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Fix – MySQL ERROR 1819 (HY000):Ihr Passwort entspricht nicht den aktuellen Richtlinienanforderungen

Wie Sie vielleicht bemerkt haben, werden Sie aufgefordert, VALIDATE PASSWORD zu aktivieren Komponente beim Einrichten des Passworts für MySQL-Root Benutzer. Wenn diese Option aktiviert ist, überprüft die Komponente „Passwort validieren“ automatisch die Stärke des angegebenen Passworts und zwingt die Benutzer, nur die Passwörter festzulegen, die sicher genug sind. Wenn Sie ein schwaches Passwort angeben, wird ein Fehler wie dieser angezeigt:ERROR 1819 (HY000): Your password does not satisfy the current policy requirements .

Technisch gesehen ist es eigentlich kein Fehler. Dies ist ein integrierter Sicherheitsmechanismus, der die Benutzer auffordert, nur die starken Passwörter basierend auf den aktuellen Anforderungen der Passwortrichtlinie bereitzustellen.

Lassen Sie mich Ihnen ein Beispiel zeigen. Ich melde mich beim MySQL-Server als root an Benutzer mit Befehl:

$ mysql -u root -p

Erstellen Sie einen Datenbankbenutzer mit einem schwachen Passwort:

mysql> create user 'ostechnix'@'localhost' identified by 'mypassword';

Und ich stoße auf den folgenden Fehler:

ERROR 1819 (HY000): Your password does not satisfy the current policy requirements

Sehen? Das Validate Password -Komponente erlaubt mir nicht, einen Benutzer mit einem schwachen Passwort zu erstellen (z. B. mypassword in diesem Fall).

Sie erhalten diesen Fehler so lange, bis das Passwort den Anforderungen der aktuellen Passwortrichtlinie entspricht oder Sie Validate Password deaktivieren Komponente. Wir werden im folgenden Abschnitt sehen, wie das geht.

Fix – MySQL ERROR 1819 (HY000):Ihr Passwort entspricht nicht den aktuellen Richtlinienanforderungen

Es gibt drei Ebenen der Passwortvalidierungsrichtlinie, die erzwungen werden, wenn Validate Password Plugin ist aktiviert:

  • NIEDRIG Länge>=8 Zeichen.
  • MITTEL Länge>=8, numerisch, gemischte Groß- und Kleinschreibung und Sonderzeichen.
  • STARK Länge>=8, numerisch, Groß-/Kleinschreibung, Sonderzeichen und Wörterbuchdatei.

Basierend auf diesen Richtlinienebenen müssen Sie ein geeignetes Kennwort festlegen. Wenn die Kennwortvalidierungsrichtlinie beispielsweise auf Mittel eingestellt ist, müssen Sie ein Kennwort mit mindestens 8 Zeichen festlegen, einschließlich einer Zahl, Kleinbuchstaben, Großbuchstaben und Sonderzeichen.

Zuerst müssen wir die aktuelle Ebene der Passwortrichtlinie finden. Führen Sie dazu den folgenden Befehl aus, um die Systemvariablen des Kennwortvalidierungs-Plugins anzuzeigen:

mysql> SHOW VARIABLES LIKE 'validate_password%';

Beispielausgabe:

+--------------------------------------+--------+
| Variable_name                        | Value  |
+--------------------------------------+--------+
| validate_password.check_user_name    | ON     |
| validate_password.dictionary_file    |        |
| validate_password.length             | 8      |
| validate_password.mixed_case_count   | 1      |
| validate_password.number_count       | 1      |
| validate_password.policy             | MEDIUM |
| validate_password.special_char_count | 1      |
+--------------------------------------+--------+
7 rows in set (0.09 sec)

Wie Sie sehen können, ist die derzeit erzwungene Passwortebene Mittel . Unser Passwort sollte also 8 Zeichen lang sein und eine Zahl, gemischte Groß- und Kleinschreibung und Sonderzeichen enthalten.

Ich werde dieses Passwort festlegen - Password123#@! mit Befehl:

mysql> create user 'ostechnix'@'localhost' identified by 'Password123#@!';
Query OK, 0 rows affected (0.36 sec)

Sehen? Es funktioniert jetzt! Also, um den "ERROR 1819 (HY000)... "Fehler, Sie müssen ein Passwort gemäß der aktuellen Passwortvalidierungsrichtlinie eingeben.

Passwortvalidierungsrichtlinie in MySQL ändern

Sie können auch den Fehler „ERROR 1819 (HY000)...“ lösen " durch Einrichten einer Kennwortrichtlinie auf niedrigerer Ebene.

Führen Sie dazu den folgenden Befehl an der mysql-Eingabeaufforderung aus:

mysql> SET GLOBAL validate_password.policy = 0;

Oder,

mysql> SET GLOBAL validate_password.policy=LOW;

Überprüfen Sie dann, ob die Kennwortvalidierungsrichtlinie auf niedrig geändert wurde:

mysql> SHOW VARIABLES LIKE 'validate_password%';

Beispielausgabe:

+--------------------------------------+-------+
| Variable_name                        | Value |
+--------------------------------------+-------+
| validate_password.check_user_name    | ON    |
| validate_password.dictionary_file    |       |
| validate_password.length             | 8     |
| validate_password.mixed_case_count   | 1     |
| validate_password.number_count       | 1     |
| validate_password.policy             | LOW   |
| validate_password.special_char_count | 1     |
+--------------------------------------+-------+
7 rows in set (0.00 sec)

Jetzt können Sie einen Benutzer mit einem schwachen Passwort wie unten erstellen:

mysql> create user 'senthil'@'localhost' identified by 'password';

Um zur Richtlinie auf MITTLERER Ebene zurückzukehren, führen Sie einfach diesen Befehl an der mysql-Eingabeaufforderung aus:

mysql> SET GLOBAL validate_password.policy=MEDIUM;

Wenn sich die Passwortrichtlinie nicht ändert, verlassen Sie die mysql-Eingabeaufforderung und starten Sie den mysql-Dienst über Ihr Terminalfenster neu:

$ sudo systemctl restart mysql

Jetzt sollte es funktionieren.

Vorsicht: Einer unserer Leser hat darauf hingewiesen, dass der folgende Befehl einen Tippfehler enthält:

mysql> SET GLOBAL validate_password.policy=LOW;

Es sollte sein:

mysql> SET GLOBAL validate_password_policy=LOW;

Beachten Sie den Unterstrich im obigen Befehl. Da ich das Setup gelöscht habe, habe ich keine Möglichkeit, diesen Befehl zu überprüfen. Aber ich nehme an, dass der Befehl in den neueren Versionen von MySQL geändert wurde.

Kennwortvalidierungsrichtlinie deaktivieren

Wenn Sie Benutzer mit schwachem Passwort erstellen möchten, deaktivieren Sie einfach Validate Password Komponente vollständig und aktivieren Sie sie wieder, nachdem Sie die Benutzer erstellt haben.

Melden Sie sich beim MySQL-Server an:

$ mysql -u root -p

Um die Komponente Validate Password vorübergehend zu deaktivieren, führen Sie den folgenden Befehl an der MySQL-Eingabeaufforderung aus:

mysql> UNINSTALL COMPONENT "file://component_validate_password";

Erstellen Sie die Benutzer mit einem beliebigen Passwort Ihrer Wahl:

mysql> create user 'kumar'@'localhost' identified by '123456';

Aktivieren Sie abschließend die Komponente „Passwort validieren“:

mysql> INSTALL COMPONENT "file://component_validate_password";

Ich persönlich empfehle nicht, die Richtlinie auf eine niedrigere Ebene zu ändern oder die Kennwortrichtlinie zu deaktivieren. Ob Datenbankbenutzer oder normaler Benutzer, verwenden Sie immer ein sicheres Passwort mit mehr als 8 Zeichen, einschließlich einer Zahl, gemischter Groß- und Kleinschreibung und Leerzeichen.

Schlussfolgerung

In diesem Leitfaden haben wir etwas über einen der häufigsten MySQL-Fehler erfahren – ERROR 1819 (HY000): Your password does not satisfy the current policy requirements und wie man es unter Linux behebt. Wir haben auch gelernt, wie man die Passwortrichtlinie deaktiviert, um schwache Passwörter zuzulassen.

Verwandte Lektüre:

  • Installieren Sie Apache, MySQL, PHP (LAMP Stack) auf Ubuntu 20.04 LTS
  • Installieren Sie Nginx, MySQL, PHP (LEMP Stack) auf Ubuntu 20.04 LTS

Linux
  1. Behebung des Fehlers „Das Repository hat keine Release-Datei“ in Ubuntu – Schritt-für-Schritt-Anleitung?

  2. CentOS – semanage command not found error – Die Lösung ist da!

  3. Fehler bei der Verwendung von GRANT mit IDENTIFIED by password in MySQL

  4. Warum enthält die Bash-Übersetzungsdatei nicht alle Fehlertexte?

  5. So beheben Sie den Vi/Vim-Editor-Fehler – E319:Entschuldigung, der Befehl ist in dieser Version nicht verfügbar

Verwalten Sie Ihre Passwörter im Linux-Terminal

Problembehebung:Fehler „Benutzer befindet sich nicht in der Sudoers-Datei“.

So beheben Sie den Fehler „Repository hat keine Release-Datei“ in Ubuntu

Behebung „Implementierung des USB 2.0-Controllers nicht gefunden!“ VirtualBox-Fehler

So beheben Sie den Fehler „Das Repository hat keine Release-Datei“ in Ubuntu

MySQL schlägt fehl bei:mysql ERROR 1524 (HY000):Plugin „auth_socket“ ist nicht geladen