it-swarm.com.de

Ihr Passwort entspricht nicht den aktuellen Richtlinienanforderungen

Ich möchte in mysql einen neuen Benutzer mit Syntax erstellen:

create user 'demo'@'localhost' identified by 'password';

Aber es ist ein Fehler. "Ihr Kennwort entspricht nicht den aktuellen Richtlinienanforderungen" . Ich versuche viele Kennwörter, aber es funktioniert nicht. Wie kann ich das beheben?

51
Nguyen

Wegen dein Passwort Sie können password validate Konfigurationsmetriken mit SHOW VARIABLES LIKE 'validate_password%'; in mysql anzeigen oder die Kennwortrichtlinienebene niedriger setzen. Beispiel:

SET GLOBAL validate_password_length = 6;
SET GLOBAL validate_password_number_count = 0;

Sie können dieses Video ansehen: FEHLER 1819 (HY000): Ihr Passwort entspricht nicht den aktuellen Richtlinienanforderungen - Mysql (Youtube)

74
Hung Nguyen

HINWEIS: Dies ist möglicherweise keine sichere Lösung. Wenn Sie jedoch an einer Testumgebung arbeiten, brauchen Sie nur eine schnelle Korrektur und kümmern sich nicht einmal um die Sicherheitseinstellungen. Dies ist eine schnelle Lösung.

Das gleiche Problem trat bei mir auf, als ich "mysql_secure_installation" ausgeführt und die Kennwortsicherheitsstufe in "medium" geändert hatte.

Ich habe den Fehler umgangen, indem ich Folgendes ausgeführt habe:

mysql -h localhost -u root -p
mysql>uninstall plugin validate_password;

stellen Sie sicher, dass Sie das Plugin "validate_password" bei Bedarf erneut installieren.

39
kennyut

Wenn es Ihnen egal ist, was die Passwortrichtlinie ist. Sie können es auf LOW setzen, indem Sie den folgenden Befehl ausgeben:

mysql> SET GLOBAL validate_password_policy=LOW;
17
singh

Nach dem Ausführen des Befehls Sudo mysql_secure_installation.

  1. Lauf Sudo mysql, um die mysql-Eingabeaufforderung aufzurufen.
  2. Führe dieses SELECT user,authentication_string,plugin,Host FROM mysql.user; um nach user zu suchen root als plugin zu haben auth_socket.
  3. Führen Sie dann uninstall plugin validate_password; zum Löschen von Privilegien vor dem Ausführen dieses ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';Stellen Sie sicher, dass Sie password in ein sicheres Passwort ändern.

HINWEIS: Weitere Hilfe erhalten Sie über diesen Link https://www.digitalocean.com/community/tutorials/how-to-install-mysql-on-ubuntu-18-04

12
Leo Sammy

Für MySQL 8 *

SET GLOBAL validate_password.policy=LOW

Referenzlink zur Erklärung der Richtlinien - Klicken Sie hier

6
Philip

Schritt 1: Überprüfen Sie Ihr Standard-Authentifizierungs-Plugin

SHOW VARIABLES LIKE 'default_authentication_plugin';

Schritt 2: Erfüllen Sie die Anforderungen für die Kennwortüberprüfung

SHOW VARIABLES LIKE 'validate_password%';

Schritt 3: Einrichten des Benutzers mit den korrekten Kennwortanforderungen

CREATE USER '<your_user>'@'localhost' IDENTIFIED WITH '<your_default_auth_plugin>' BY 'password';
2
Oroki

Ich hatte das gleiche Problem und die Antwort steht genau vor Ihnen. Denken Sie daran, wann Sie das Skript ausgeführt haben, während Sie mysql like installiert haben

Sudo mysql_secure_installation

dort haben Sie irgendwo den Kennworttyp ausgewählt, den Sie auswählen möchten

Es gibt drei Ebenen der Kennwortüberprüfungsrichtlinie:

LOW Length> = 8 MEDIUM Length> = 8, numerisch, Groß- und Kleinschreibung und Sonderzeichen STRONG Length> = 8, numerisch, Groß- und Kleinschreibung, Sonderzeichen und Wörterbuchdatei

Bitte geben Sie 0 = LOW, 1 = MEDIUM und 2 = STRONG ein:

sie müssen ein Kennwort für dieselbe Richtlinie angeben

hier einige Beispiele für Ihre Passwörter:
für Typ 0: abcdabcd
für Typ 1: abcd1234
für Typ 2: [email protected]

1
Anurag Sahu

Fügen Sie für Laravel Benutzer, die dieses Problem mit MySQL 8.0.x haben, Folgendes hinzu

'modes'=> [
             'ONLY_FULL_GROUP_BY',
             'STRICT_TRANS_TABLES',
             'NO_ZERO_IN_DATE',
             'NO_ZERO_DATE',
             'ERROR_FOR_DIVISION_BY_ZERO',
             'NO_ENGINE_SUBSTITUTION',
            ],

in deine database.php Datei wie folgt:

// database.php

    'connections' => [

        'mysql' => [
            'driver'      => 'mysql',
            'Host'        => env( 'DB_Host', '127.0.0.1' ),
            'port'        => env( 'DB_PORT', '3306' ),
            'database'    => env( 'DB_DATABASE', 'forge' ),
            'username'    => env( 'DB_USERNAME', 'forge' ),
            'password'    => env( 'DB_PASSWORD', '' ),
            'unix_socket' => env( 'DB_SOCKET', '' ),
            'charset'     => 'utf8mb4',
            'collation'   => 'utf8mb4_unicode_ci',
            'prefix'      => '',
            'strict'      => true,
            'engine'      => null,
            'modes'       => [
                'ONLY_FULL_GROUP_BY',
                'STRICT_TRANS_TABLES',
                'NO_ZERO_IN_DATE',
                'NO_ZERO_DATE',
                'ERROR_FOR_DIVISION_BY_ZERO',
                'NO_ENGINE_SUBSTITUTION',
            ],
        ],
    ],

Es hat es für mich behoben.

0
Jekayode

Meiner Meinung nach ist das Setzen von "validate_password_policy" auf "low" oder das Deinstallieren des "validate password plugin" nicht das Richtige. Sie dürfen niemals Kompromisse bei der Sicherheit Ihrer Datenbank eingehen (es sei denn, es ist Ihnen wirklich egal). Ich frage mich, warum die Leute diese Optionen sogar vorschlagen, wenn Sie einfach ein gutes Passwort auswählen können.

Um dieses Problem zu lösen, habe ich in mysql den folgenden Befehl ausgeführt: SHOW VARIABLES LIKE 'validate_password%' wie von @JNevill vorgeschlagen. Meine "validate_password_policy" wurde zusammen mit anderen Dingen auf "Mittel" gesetzt. Hier ist der Screenshot von seiner Ausführung: Validate Password Policy

Das Ergebnis ist selbsterklärend. Für ein gültiges Passwort (wenn die Passwortrichtlinie auf mittel eingestellt ist):

  • Das Passwort muss mindestens 8 Zeichen lang sein
  • Die Anzahl der gemischten Groß- und Kleinschreibung beträgt 1 (mindestens 1 Buchstabe in Kleinbuchstaben und 1 Buchstabe in Großbuchstaben).
  • Die Anzahl ist 1
  • Die Mindestanzahl an Sonderzeichen beträgt 1

Ein gültiges Passwort muss daher den Richtlinien entsprechen. Beispiele für ein gültiges Passwort für die oben genannten Regeln:

  • Student123 @
  • NINZAcoder $ 100
  • demoPass # 00

Sie können eine beliebige Kombination auswählen, solange diese der Richtlinie entspricht.

Für andere "validate_password_policy" können Sie einfach die Werte nach verschiedenen Optionen durchsuchen und Ihr Passwort entsprechend auswählen (ich habe es nicht mit "HIGH" versucht).

0

Diese Fehlermeldung hat nichts mit dem in Ihrer Tabelle gespeicherten Passwort zu tun. Es tritt auch auf, wenn Sie (in der SQL-Konsole) eingeben.

"Passwort auswählen ('123456789')"

oder wenn 

"Passwort auswählen ('A123456789')"

oder wenn 

"Passwort auswählen ('A! 123456789')"

Wenn du schreibst 

"Passwort auswählen ('A! a123456789')"

dann wird es klappen. Verwenden Sie einfach große + kleine Buchstaben, Sonderzeichen und Zahlen, um Ihr Passwort zu erstellen. 

Sie können diese Überprüfungen in my.cnf deaktivieren, aber dann besteht ein Sicherheitsrisiko!

in [mysqld] hinzufügen:

validate_password_policy=LOW
validate_password_special_char_count=0
validate_password_length=0
validate_password_mixed_case_count=0
validate_password_number_count=0
0
Tino Bellmann

Das Problem ist, dass Ihr Kennwort nicht den Kennwortüberprüfungsregeln entspricht. Sie können einfach den folgenden Schritten folgen, um Ihr Problem zu lösen.

Sie können die Konfigurationsmatrix für die Kennwortüberprüfung einfach anzeigen, indem Sie den folgenden Code eingeben.

mysql-> SHOW VARIABLES LIKE 'validate_password%';

Dann finden Sie in Ihrer Matrix unten Variablen mit entsprechenden Werten und dort müssen Sie validate_password_length, validate_password_number_count und validate_password_policy überprüfen.

Überprüfen Sie die für diese Variablen verwendeten Werte. Stellen Sie sicher, dass Ihr validate_password_length nicht größer als 6 sein sollte. Sie können dies mit dem folgenden Code auf 6 setzen.

SET GLOBAL validate_password_length = 6;

Danach müssen Sie validate_password_number_count auf 0 setzen. Verwenden Sie dazu den folgenden Code.

SET GLOBAL validate_password_number_count = 0;

Zuletzt müssen Sie validate_password_policy auf low setzen. Wenn Sie das als Medium oder High haben, werden Ihre weniger sicheren Passwörter nicht zugelassen. Stellen Sie dies unter Code auf low ein.

SET GLOBAL validate_password_policy=LOW;
0
Dushan